home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / wb-enhancement / swazblanker / programmer / autodoc / matrix.doc next >
Text File  |  1996-02-26  |  73KB  |  2,886 lines

  1. TABLE OF CONTENTS
  2.  
  3. matrix.library/--Event_FontGadgetNew--
  4. matrix.library/--MX_FormatMXSB--
  5. matrix.library/--MX_ScreenButton_Remake--
  6. matrix.library/--background--
  7. matrix.library/MX_AddArexxPort
  8. matrix.library/MX_AddNodeSorted
  9. matrix.library/MX_AddVBlankNode
  10. matrix.library/MX_AllocMem
  11. matrix.library/MX_AllocVecStr
  12. matrix.library/MX_CDToAssigns
  13. matrix.library/MX_CPUName
  14. matrix.library/MX_CleanUpGList
  15. matrix.library/MX_CloneListByName
  16. matrix.library/MX_CloseForm
  17. matrix.library/MX_CloseWinSafe
  18. matrix.library/MX_CompressInfo
  19. matrix.library/MX_CompressTrue
  20. matrix.library/MX_CurrentTime
  21. matrix.library/MX_DeCompress
  22. matrix.library/MX_DeCompressTrue
  23. matrix.library/MX_DeleteDirectory
  24. matrix.library/MX_DisplayRequest
  25. matrix.library/MX_DisplayRequestWin
  26. matrix.library/MX_DosOpen
  27. matrix.library/MX_ExamineDir
  28. matrix.library/MX_Free8SVX
  29. matrix.library/MX_FreeArgs
  30. matrix.library/MX_FreeFIB
  31. matrix.library/MX_FreeFont
  32. matrix.library/MX_FreeList
  33. matrix.library/MX_FreeListNodes
  34. matrix.library/MX_FreeMem
  35. matrix.library/MX_FullWBArgName
  36. matrix.library/MX_GetCatalogStr
  37. matrix.library/MX_GetFont
  38. matrix.library/MX_HexStrLong
  39. matrix.library/MX_HookTag
  40. matrix.library/MX_HookTagOrdered
  41. matrix.library/MX_JustifyText
  42. matrix.library/MX_ListToArray
  43. matrix.library/MX_Load8SVX
  44. matrix.library/MX_LoadFIB
  45. matrix.library/MX_LoadFile
  46. matrix.library/MX_LoadIFF
  47. matrix.library/MX_LockMxBase
  48. matrix.library/MX_MakeMenu_Localize
  49. matrix.library/MX_MakePath
  50. matrix.library/MX_ModifyListview
  51. matrix.library/MX_NewLoadIFF
  52. matrix.library/MX_NewPrefsWH
  53. matrix.library/MX_NewReadArgs
  54. matrix.library/MX_NewSaveIFF
  55. matrix.library/MX_NewSortList
  56. matrix.library/MX_NextForm
  57. matrix.library/MX_OpenForm
  58. matrix.library/MX_OpenFormReq
  59. matrix.library/MX_OpenPathNew
  60. matrix.library/MX_PatternMatch
  61. matrix.library/MX_ProcessArexxPort
  62. matrix.library/MX_QuickSort
  63. matrix.library/MX_Random
  64. matrix.library/MX_RandomInRange
  65. matrix.library/MX_RandomSeed
  66. matrix.library/MX_RawFormat
  67. matrix.library/MX_ReadArgs
  68. matrix.library/MX_ReadForm
  69. matrix.library/MX_ReadFormTagList
  70. matrix.library/MX_RemArexxPort
  71. matrix.library/MX_RemVBlankNode
  72. matrix.library/MX_RemakeGadgets
  73. matrix.library/MX_ReplaceTags
  74. matrix.library/MX_ReplaceVecStr
  75. matrix.library/MX_SaveIFF
  76. matrix.library/MX_SeekForm
  77. matrix.library/MX_SelectGadget
  78. matrix.library/MX_SendArexxString
  79. matrix.library/MX_SetListView
  80. matrix.library/MX_SetWaitPointer
  81. matrix.library/MX_ShowWindow
  82. matrix.library/MX_SortList
  83. matrix.library/MX_SoundID
  84. matrix.library/MX_StrCpyLen
  85. matrix.library/MX_StrCpyWord
  86. matrix.library/MX_StrLen
  87. matrix.library/MX_TaskName
  88. matrix.library/MX_TextFileToList
  89. matrix.library/MX_TimeString
  90. matrix.library/MX_UnlockMxBase
  91. matrix.library/MX_UnlockWindow
  92. matrix.library/MX_UpdateVBLankInterrupt
  93. matrix.library/MX_WhereAmI
  94. matrix.library/MX_WindowHandler
  95. matrix.library/MX_WrapText
  96. matrix.library/MX_WriteForm
  97. matrix.library/MX_WriteFormTagList
  98. matrix.library/--Event_FontGadgetNew-- matrix.library/--Event_FontGadgetNew--
  99.  
  100.   PURPOSE
  101.     This function is private.
  102.  
  103.   SYNTAX
  104.     Event_FontGadgetNew(gadget,IMsg,whStruct)
  105.               a1    a4     a5
  106.  
  107.   SEE ALSO
  108.     MX_WindowHandler(), MX_CreateGadgets().
  109.  
  110. matrix.library/--MX_FormatMXSB--             matrix.library/--MX_FormatMXSB--
  111.  
  112.   PURPOSE
  113.     This function is private.
  114.     Formats the text used by screen mode gadgets.
  115.  
  116.   SYNTAX
  117.     MX_FormatMXSB(mxScreenButtonData,mxBase)
  118.                          a0            a6
  119.  
  120.     struct MxScreenModeButton *mxScreenButtonData;
  121.  
  122.   INPUTS
  123.     mxScreenButtonData = pointer to data field made by
  124.         MX_CreateGadgets() to track information. This
  125.         can be obtained from the gadgets userdata field.
  126.  
  127.   RESULT
  128.     None.
  129.  
  130.   SEE ALSO
  131.     MX_WindowHandler(), MX_CreateGadgets().
  132.  
  133. matrix.library/--MX_ScreenButton_Remake-- matrix.library/--MX_ScreenButton_Remake--
  134.  
  135.   PURPOSE
  136.     This function is private.
  137.     Refreshes the screenmode gadget.
  138.  
  139.   SYNTAX
  140.     MX_ScreenButton_Remake(gad,win,mxBase)
  141.                            a0   a1   a6
  142.  
  143.     struct Gadget *gad;
  144.     struct Window *win;
  145.  
  146.   INPUTS
  147.     gad = pointer to a mxScreenMode gadget made by
  148.         MX_CreateGadgets(). This will be refreshed to
  149.         reflect any changes made in its data storage
  150.         area.
  151.     win = pointer to window containing gadget.
  152.  
  153.   RESULT
  154.     None.
  155.  
  156.   SEE ALSO
  157.     MX_WindowHandler(), MX_CreateGadgets().
  158.  
  159. matrix.library/--background--                   matrix.library/--background--
  160.  
  161.   PURPOSE
  162.     Unknown.
  163.  
  164.   OVERVIEW
  165.     All information contained in this document is
  166.     confidentional and may not be distributed.
  167.  
  168. matrix.library/MX_AddArexxPort                 matrix.library/MX_AddArexxPort
  169.  
  170.   NAME
  171.     MX_AddArexxPort -- add a public arexx message port. (V23)
  172.  
  173.   SYNOPSIS
  174.     port = MX_AddArexxPort(name,hook,[userdata])
  175.      d0                     a0   a1     [d0]
  176.  
  177.     struct    MsgPort *port;
  178.     STRPTR    name;
  179.     APTR    hook;
  180.     LONG    userdata;
  181.  
  182.   FUNCTION
  183.     Add an arexx port to the system public port list safely.
  184.  
  185.   INPUTS
  186.     name - pointer to name of the public port. This name is copied into
  187.         public memory using MX_AllocVecStr(). It is therefore necessary
  188.         to call MX_RemArexxPort() when removing the arexx port so that
  189.         this memory may also be deallocated.
  190.     hook - pointer to user function that is called when a port is found
  191.         with the same name as the one we wish to create. The hook is
  192.         invoked as follows:
  193.            result = userhook(port,userdata)
  194.              d0               a0     a0
  195.   RESULT
  196.     port = pointer to created message port or NULL if a port with the
  197.         same name has been found (the user hook would have been invoked)
  198.         or we are unable to allocate sufficient memory.
  199.  
  200.   NOTES
  201.     The userhook callback is called within a Forbid() permit so that the
  202.     port is unable to go away, unless the task goes into a Wait().
  203.     Also the result return value should always return NULL. This may be
  204.     used at a later stage for a retry/cancel mode.
  205.  
  206.   SEE ALSO
  207.     MX_RemArexxPort(), MX_ProcessArexxPort(), MX_AllocVecStr(),
  208.     exec.library/FindPort(), exec.library/CreateMsgPort(),
  209.     exec.library/AddPort(), exec.library/Forbid(), exec.library/Permit(),
  210.     exec.library/Wait().
  211. matrix.library/MX_AddNodeSorted               matrix.library/MX_AddNodeSorted
  212.  
  213.   NAME
  214.     MX_AddNodeSorted -- add node to linked list (V22)
  215.  
  216.   SYNOPSIS
  217.     pos = MX_AddNodeSorted(list,node)
  218.     d0                      a0   a1
  219.  
  220.     ULONG    pos;
  221.     APTR    list;
  222.     APTR    node;
  223.  
  224.   FUNCTION
  225.     Add a node into a linked list into prioritized alphbetic order.
  226.  
  227.   INPUTS
  228.     pos = position added into list
  229.     list = pointer to initialized list head.
  230.     node = node to add into the list in prioritized alphabetic order.
  231.         Make sure the LN_PRI and LN_NAME fields are set.
  232.  
  233.   RESULT
  234.     None
  235.  
  236.   NOTES
  237.     Make sure the LN_PRI field of each node is set, if you do
  238.     not want a prioritized sort then set this to zero for all nodes.
  239.  
  240.   SEE ALSO
  241.     MX_SortList()
  242.  
  243. matrix.library/MX_AddVBlankNode               matrix.library/MX_AddVBlankNode
  244.  
  245.   NAME
  246.     MX_AddVBlankNode -- add vblank server hook or signal (V23)
  247.  
  248.   SYNOPSIS
  249.     vbn = MX_AddVBlankNode(tags)
  250.      d0                     a0
  251.  
  252.     struct    MXVBlankNode *vbn;
  253.     struct    TagItem    *tags;
  254.  
  255.   FUNCTION
  256.     Add hook or signal to the matrix vblank interrupt server. 
  257.  
  258.   INPUTS
  259.     tags = pointer to a tagitem array.
  260.  
  261.   RESULT
  262.     vbn = pointer to allocated vblank node or NULL if failed.
  263.  
  264.   TAGS
  265.     MXVB_HookAddress (APTR) - set a hook routine to call when a
  266.         vertical blank occurs. The hook is called as follows:
  267.         userhook(vbn,userdata)(a0,d0)
  268.         This tag is mutually exclusive to MXVB_SigBit.
  269.  
  270.     MXVB_UserData (ULONG) - user definable field passed to hook
  271.         function.
  272.  
  273.     MXVB_SigBit (UBYTE) - this will be the signal bit to signal the
  274.         task that is adding the vblank node. This tag is mutually
  275.         exclusive to MXVB_HookAddress.
  276.  
  277.     MXVB_Count (BYTE) - number of vertical blanks that are to occur
  278.         before the hook address of signal is called.
  279.  
  280.   SEE ALSO
  281.     MX_RemVBlankNode(), MX_UpdateVBLankInterrupt()
  282.  
  283. matrix.library/MX_AllocMem                         matrix.library/MX_AllocMem
  284.  
  285.   NAME
  286.     MX_AllocMem -- OBSOLETE FUNCTION
  287.  
  288.   SYNOPSIS
  289.     mem = MX_AllocMem(size)
  290.     d0                 d0
  291.  
  292. matrix.library/MX_AllocVecStr                   matrix.library/MX_AllocVecStr
  293.  
  294.   NAME
  295.     MX_AllocVecStr -- alloc a string and buffer (V23)
  296.  
  297.   SYNOPSIS
  298.     mem = MX_AllocVecStr(string,attributes)
  299.     d0           a0       d1
  300.  
  301.     APTR    mem;
  302.     STRPTR    string;
  303.     ULONG    attributes;
  304.  
  305.   FUNCTION
  306.     Allocates a buffer for the string and copys the string into
  307.     the buffer.
  308.  
  309.   INPUTS
  310.     string = pointer to a string.
  311.     attributes = exec.library/AllocVec() memory attributes.
  312.  
  313.   RESULT
  314.     Pointer to buffer containing the string, or NULL if not enough
  315.     memory for the buffer.
  316.  
  317.   NOTE
  318.     Use exec.library/FreeVec() to deallocate the buffer.
  319.  
  320.   SEE ALSO
  321.     MX_ReplaceVecStr(), exec.library/AllocVec(), exec.library/FreeVec()
  322. matrix.library/MX_CDToAssigns                   matrix.library/MX_CDToAssigns
  323.  
  324.  NAME
  325.     MX_CDToAssigns -- change directory to all assigns
  326.  
  327.  SYNOPSIS
  328.     success = MX_CDToAssigns(name,hook,[userdata])
  329.        d0                     a0   a1     [d0]
  330.  
  331.     BOOLEAN    success;
  332.     STRPTR    name;
  333.     APTR    hook;
  334.     ULONG    userdata;
  335.  
  336.  INPUTS
  337.     name = 
  338.     hook = 
  339.     userdata = 
  340.  
  341.  RESULT
  342.     TRUE if successful
  343.  
  344.  SEE ALSO
  345.  
  346. matrix.library/MX_CPUName                           matrix.library/MX_CPUName
  347.  
  348.  NAME
  349.     MX_CPUName -- get the type of CPU
  350.  
  351.  SYNOPSIS
  352.     name = MX_CPUName(attnflag,tags)
  353.      a0                 d0      d1
  354.  
  355.  INPUTS
  356.     attnflag = as per execbase
  357.     tags = none defined. Leave this as NULL
  358.  RESULT
  359.     name = pointer to description of CPU
  360.  NOTES
  361.     Please not that a2 *IS* trashed
  362.     a1 = *FPUName
  363.     a2 = *MMUName
  364.  
  365. matrix.library/MX_CleanUpGList                 matrix.library/MX_CleanUpGList
  366.  
  367.   NAME
  368.     MX_CleanUpGList -- Dispose of the gadgets
  369.  
  370.   SYNOPSIS
  371.     MX_CleanUpGList(firstGadget,Number)
  372.                         d0       d1
  373.  
  374.     struct    Gadget    *firstGadget;
  375.     ULONG    Number;
  376.  
  377.   FUNCTION
  378.     Deallocates structures allocated for the gadgets set
  379.     up by MX_CreateGadgets()
  380.  
  381.   INPUTS
  382.     firstGadget = pointer to first gadget. NULL does nothing.
  383.     Number = number of gadgets to cleanup.
  384.  
  385.   RESULT
  386.     None
  387.  
  388.   SEE ALSO
  389.     MX_CreateGadgets(), MX_RemakeGadgets()
  390. matrix.library/MX_CloneListByName           matrix.library/MX_CloneListByName
  391.  
  392.   NAME
  393.     matrix.library/MX_CloneListByName -- Duplicate a list by name only.
  394.  
  395.   SYNOPSIS
  396.     list = MX_CloneListByName(sourcelist,function,tags)
  397.      d0                           a0        a1     a2
  398.  
  399.     STRUCT    list    *list;
  400.     STRUCT    list    *sourcelist;
  401.     APTR    function;
  402.     struct    TagItem    *tags;
  403.  
  404.   FUNCTION
  405.     Creates a list based upon the source list. If no user function
  406.     is provided the created list is a duplicate list of the node names
  407.     of the source list only. If the user function is provided then
  408.     the created list is a list of the names returned by the function.
  409.   INPUTS
  410.     list    - pointer to source list.
  411.     function    - pointer to user function or NULL. The user function
  412.         fills a buffer with the required node name based upon the source
  413.         node. The user function is called as:
  414.         result = Function(buffer,node)
  415.           d0                a0    a1
  416.         If the result returned is FALSE then the buffer will not be
  417.         added to the list.
  418.  
  419.     tags    - none available.
  420.  
  421.   RESULT
  422.     list    - pointer to list, use MX_FreeList() to deallocate.
  423.  
  424.   TAGS
  425.     None available.
  426.  
  427.   NOTES
  428.     The buffer is currently only 200 bytes long. Tags may be provided
  429.     later to change this.
  430.  
  431.   SEE ALSO
  432.     MX_FreeList()
  433.  
  434. matrix.library/MX_CloseForm                       matrix.library/MX_CloseForm
  435.  
  436.   NAME
  437.     MX_CloseForm -- OBSOLETE FUNCTION
  438.  
  439.   SYNOPSIS
  440.     MX_CloseForm(formhandle)
  441.                      d0
  442.  
  443. matrix.library/MX_CloseWinSafe                 matrix.library/MX_CloseWinSafe
  444.  
  445.   NAME
  446.     MX_CloseWinSafe -- close a window with a shared IDCMP port. (V22)
  447.  
  448.   SYNOPSIS
  449.     MX_CloseWinSafe(window)
  450.                  a0
  451.  
  452.     struct Window *window;
  453.  
  454.   FUNCTION
  455.     Detaches the IDCMP port from a window before closing and removes
  456.     and replies any outstanding messages.
  457.  
  458.   INPUTS
  459.     window = pointer to window to close.
  460.  
  461.   RESULT
  462.     None.
  463.  
  464.   SEE ALSO
  465.     intuition.library/CloseWindow()
  466.  
  467. matrix.library/MX_CompressInfo                 matrix.library/MX_CompressInfo
  468.  
  469.   NAME
  470.     MX_CompressInfo -- query buffer compression (V24)
  471.  
  472.   SYNOPSIS
  473.     buffer, length = MX_CompressInfo(srcData)
  474.       a0      d0                        a0
  475.  
  476.     APTR    buffer
  477.     ULONG    length
  478.     APTR    srcData
  479.  
  480.   FUNCTION
  481.     How long is the decompressed buffer.
  482.  
  483.   INPUTS
  484.  
  485.     srcData = Pointer to compressed data stream
  486.  
  487.   RESULT
  488.     The length of the decompressed buffer. Returns ZERO if the buffer
  489.     is not a matrix compression buffer.
  490.     Also returns pointer to start of compressed data in a0.
  491.   NOTES
  492.  
  493.   SEE ALSO
  494.     MX_CompressTrue(), MX_CompressText(), MX_DeCompress(),
  495.     MX_DeCompressTableSize().
  496.  
  497. matrix.library/MX_CompressTrue                 matrix.library/MX_CompressTrue
  498.  
  499.   NAME
  500.     MX_CompressTrue -- compress a buffer (V24)
  501.  
  502.   SYNOPSIS
  503.     buffer,length = MX_CompressTrue(srcData,srcLen)
  504.      d0      d1                       a0      d0
  505.  
  506.     APTR    buffer
  507.     ULONG    length
  508.     APTR    srcData
  509.     ULONG    srcLen
  510.  
  511.   FUNCTION
  512.     Compress a buffer.
  513.  
  514.   INPUTS
  515.  
  516.     srcData = Pointer to sorce buffer
  517.     srcLen = length of source data
  518.  
  519.   RESULT
  520.     Pointer to compressed buffer. This should be freed using
  521.     exec.library/FreeVec(). This buffer can be decompressed
  522.     using MX_DeCompressTrue(). The length of the buffer is
  523.     returned in d1. The length of the buffer when decompressed
  524.     may be obtained from the buffer header which is as
  525.     follows:
  526.  
  527.       STRUTURE MXCompressHeader,4        ; 4 byte identifier
  528.         ULONG    mxcp_Len
  529.         LABEL    mxcp_SIZE
  530.  
  531.   NOTES
  532.  
  533.   SEE ALSO
  534.     MX_DeCompressTrue()
  535.  
  536. matrix.library/MX_CurrentTime                   matrix.library/MX_CurrentTime
  537.  
  538.   NAME
  539.     MX_CurrentTime() -- get the current time in seconds (V20)
  540.  
  541.   SYNOPSIS
  542.     seconds = MX_CurrentTime()
  543.        d0
  544.  
  545.   FUNCTION
  546.     Returns the current time in seconds.
  547.  
  548.   INPUTS
  549.     None
  550.  
  551.   RESULT
  552.     seconds - number of seconds elapsed since 01-Jan-1978.
  553.  
  554.   NOTE
  555.     The number of microseconds is returned in d1.
  556.  
  557.   SEE ALSO
  558.     intuition.library/CurrentTime(), timer.device/TR_GETSYSTIME
  559.  
  560. matrix.library/MX_DeCompress                     matrix.library/MX_DeCompress
  561.  
  562.   NAME
  563.     MX_DeCompress -- decompress a compressed buffer (V24)
  564.  
  565.   SYNOPSIS
  566.     result = MX_DeCompress(srcData,destData,table)
  567.      a0                      a0       a1      a2
  568.  
  569.     APTR    srcData
  570.     APTR    destData
  571.     APTR    table
  572.     APTR    result
  573.  
  574.   FUNCTION
  575.     Decompress data compressed with MX_Compress()
  576.  
  577.   INPUTS
  578.  
  579.     srcData = Pointer to compressed source stream
  580.     destData = Pointer to destination data
  581.     table = Pointer to an area for the hash tables, of size found with
  582.         MX_DecompessTableSize().
  583.   RESULT
  584.     Pointer to end of compressed data.
  585.  
  586.   NOTES
  587.  
  588.   SEE ALSO
  589.     MX_Compress(), MX_DeCompress()
  590.  
  591. matrix.library/MX_DeCompressTrue             matrix.library/MX_DeCompressTrue
  592.  
  593.   NAME
  594.     MX_DeCompressTrue -- decompress a buffer (V24)
  595.  
  596.   SYNOPSIS
  597.     buffer, length = MX_DeCompressTrue(srcData)
  598.      d0       d1                          a0
  599.  
  600.     APTR    buffer
  601.     ULONG    length
  602.     APTR    srcData
  603.  
  604.   FUNCTION
  605.     Decompress a buffer compressed with MX_CompressText()
  606.     or MX_CompressTrue().
  607.  
  608.   INPUTS
  609.  
  610.     srcData = Pointer to compressed data stream
  611.  
  612.   RESULT
  613.     Pointer to decompressed buffer. This should be freed using
  614.     exec.library/FreeVec().
  615.  
  616.   NOTES
  617.  
  618.   SEE ALSO
  619.     MX_CompressTrue(), MX_CompressText(), MX_DeCompress(),
  620.     MX_DeCompressTableSize().
  621.  
  622. matrix.library/MX_DeleteDirectory           matrix.library/MX_DeleteDirectory
  623.  
  624.   NAME
  625.     MX_DeleteDirectory -- delete a diretory and its contents. (V22)
  626.  
  627.   SYNOPSIS
  628.     success = MX_DeleteDirectory(name,tags)
  629.        d0                         a0   d0
  630.  
  631.     BOOL    success;
  632.     STRPTR    name;
  633.     struct    TagList *tags;
  634.  
  635.   FUNCTON
  636.     Deletes a directory and all subdirectories and files.
  637.  
  638.   INPUTS
  639.     name = pointer to directory path.
  640.     tags = pointer to a taglist. None are supported.
  641.  
  642.   RESULT
  643.     success = TRUE if successful, FALSE otherwise.
  644.  
  645.   SEE ALSO
  646.     dos.library/DeleteFile(), MX_MakePath()
  647.  
  648. matrix.library/MX_DisplayRequest             matrix.library/MX_DisplayRequest
  649.  
  650.   NAME
  651.     MX_DisplayRequest -- display a request to the user (V23)
  652.  
  653.   SYNOPSIS
  654.     result = MX_DisplayRequest(body,buttons,data)
  655.       d0                        a0    a1     a2
  656.  
  657.     ULONG    result;
  658.     STRPTR    body;
  659.     STRPTR    buttons;
  660.     APTR    data;
  661.  
  662.   FUNCTON
  663.     Displays a request to the user either by an intuition
  664.     requestor or with output to cli, depending on where the
  665.     task was run from.
  666.  
  667.   INPUTS
  668.     body = pointer to format string for the body text. If
  669.         NULL then this function performs no action.
  670.     buttons = pointer to format string for the buttons
  671.     data = data for the formatting strings
  672.  
  673.   RESULT
  674.     0, 1, ..., N = Successive GadgetID values, for the gadgets
  675.         you specify for the requester.  NOTE: The numbering
  676.         from left to right is actually: 1, 2, ..., N, 0.
  677.  
  678.   NOTES
  679.     Currently under V23 when run from the CLI this function
  680.     only displays the body text and will return 0.
  681.  
  682.   SEE ALSO
  683.     MX_DisplayRequestWin(), exec.library/RawDoFmt(),
  684.     intuition.library/EasyRequestArgs() dos.library/VPrintf()
  685.  
  686. matrix.library/MX_DisplayRequestWin       matrix.library/MX_DisplayRequestWin
  687.  
  688.   NAME
  689.     MX_DisplayRequestWin -- display a request to the user (V24)
  690.  
  691.   SYNOPSIS
  692.     result = MX_DisplayRequestWin(body,buttons,data,window)
  693.       d0                           a0    a1     a2    d0
  694.  
  695.     ULONG    result;
  696.     STRPTR    body;
  697.     STRPTR    buttons;
  698.     APTR    data;
  699.     struct    Window *window;
  700.  
  701.   FUNCTON
  702.     Displays a request to the user either by an intuition
  703.     requestor.
  704.  
  705.   INPUTS
  706.     body = pointer to format string for the body text. If
  707.         NULL then this function performs no action.
  708.     buttons = pointer to format string for the buttons
  709.     data = data for the formatting strings
  710.     window = pointer to window to disable.
  711.  
  712.   RESULT
  713.     0, 1, ..., N = Successive GadgetID values, for the gadgets
  714.         you specify for the requester.  NOTE: The numbering
  715.         from left to right is actually: 1, 2, ..., N, 0.
  716.  
  717.   SEE ALSO
  718.     MX_DisplayRequest(), exec.library/RawDoFmt(),
  719.     intuition.library/EasyRequestArgs() dos.library/VPrintf()
  720.  
  721. matrix.library/MX_DosOpen                           matrix.library/MX_DosOpen
  722.  
  723.   NAME
  724.     MX_DosOpen -- open a file
  725.  
  726.   SYNOPSIS
  727.     filehandle = MX_DosOpen(filename,path,mode)
  728.         d0                     a0     a1   d0
  729.  
  730.   INPUTS
  731.     filename =
  732.     path  =
  733.     mode =
  734.  
  735.   RESULT
  736.     filehandle is NULL if file could not be opened
  737.  
  738.   SEE ALSO
  739.     dos.library/Open(), dos.library/Close()
  740.  
  741. matrix.library/MX_ExamineDir                     matrix.library/MX_ExamineDir
  742.  
  743.   NAME
  744.     MX_ExamineDir -- examine entries in a directory (V21)
  745.  
  746.   SYNOPSIS
  747.     lock = MX_ExamineDir(hook,[data],lock)
  748.      d0                   a0    d0    d1
  749.  
  750.     BPTR    lock;
  751.     APTR    hook;
  752.     BPTR    lock;
  753.     LONG    data;
  754.  
  755.   FUNCTION
  756.  
  757.     Examine a directory
  758.  
  759.   INPUTS
  760.     hook = pointer to hook function called as follows:
  761.         continue = Hook(fib,data)
  762.            d0            a0  d0
  763.  
  764.         BOOLEAN    continue;
  765.         struct    FileInfoBlock *fib;
  766.         LONG    data;
  767.  
  768.         The hook function should return 0 for abort, and 1 to
  769.         continue with the directory read.
  770.  
  771.     lock = pointer to a directory that has been locked.
  772.     data = user definable value passed to hook function.
  773.  
  774.   RESULT
  775.     lock = the same value as the lock passed in.
  776.  
  777.   NOTES
  778.     This function will change the CurrentDir to the directory
  779.     being examined (V23)
  780.   BUGS
  781.     Prior to V23 the hook function did not return a continuation
  782.     condition, this has been added to V23. Some programs will
  783.     not function correctly and should be updated.
  784.  
  785.   SEE ALSO
  786.     dos.library/Lock(), dos.library/Examine(), dos.library/ExNext(),
  787.     dos.library/CurrentDir()
  788.  
  789. matrix.library/MX_Free8SVX                         matrix.library/MX_Free8SVX
  790.  
  791.   NAME
  792.     MX_Free8SVX -- OBSOLETE FUNCTION
  793.  
  794.   SYNOPSIS
  795.     MX_Free8SVX(mx8SVX)
  796.                   d0
  797.  
  798. matrix.library/MX_FreeArgs                         matrix.library/MX_FreeArgs
  799.  
  800.   NAME
  801.     MX_FreeArgs -- Free allocated memory after MX_ReadArgs() (V23)
  802.  
  803.   SYNOPSIS
  804.     MX_FreeArgs(MXArgLock)
  805.              a0
  806.  
  807.     struct    *MXArgLock;
  808.  
  809.   INPUTS
  810.     MXArgLock    - pointer returned by MX_ReadArgs or NULL for no action.
  811.  
  812.   RESULT
  813.     None.
  814.  
  815.  SEE ALSO
  816.     matrix.library/MX_FreeArgs(), dos.library/FreeArgs()
  817.     dos.library/ReadArgs(), dos.library/ReadItem(), dos.library/FindArg()
  818.  
  819. matrix.library/MX_FreeFIB                           matrix.library/MX_FreeFIB
  820.  
  821.  NAME
  822.     MX_FreeFIB -- deallocate the FIB from MX_LoadFIB()
  823.  
  824.  SYNOPSIS
  825.     MX_FreeFIB(fib)
  826.           d0
  827.  
  828.  SEE ALSO
  829.     MX_LoadFIB, dos.library/AllocDosObject(), dos.library/Examine()
  830.  
  831. matrix.library/MX_FreeFont                         matrix.library/MX_FreeFont
  832.  
  833.   NAME
  834.     MX_FreeFont -- Frees the font allocated. (V23)
  835.  
  836.   SYNOPSIS
  837.     MX_FreeFont(textattr,font,tags)
  838.             a0      a1   a2
  839.  
  840.     struct    TextAttr *textattr;
  841.     struct    TextFont *font;
  842.     struct    TagItem *tags;
  843.  
  844.   FUNCTION
  845.     Frees any resources taken by MX_GetFont(). The
  846.     textattr structure will be initialized to zeros.
  847.  
  848.   INPUTS
  849.     textattr = pointer to textattr structure that was filled
  850.        by MX_GetFont().
  851.     font = as returned by MX_GetFont().
  852.     tags = pointer to a taglist (NULL).
  853.  
  854.   TAGS
  855.     None.
  856.  
  857.   RESULT
  858.     None.
  859.     
  860.   SEE ALSO
  861.     MX_GetFont(), graphics.library/CloseFont()
  862.  
  863. matrix.library/MX_FreeList                         matrix.library/MX_FreeList
  864.  
  865.   NAME
  866.     MX_FreeList -- free the entire list (V22)
  867.  
  868.   SYNOPSIS
  869.     MX_FreeList(list,hook,[userdata])
  870.  
  871.            a0   a1     [d0]
  872.  
  873.     APTR    head;
  874.     APTR    hook;
  875.     LONG    userdata;
  876.  
  877.   FUNCTION
  878.     Frees an entire list.
  879.  
  880.   INPUTS
  881.     head = pointer to list head or NULL.
  882.     hook = pointer to hook function. See MX_FreeListNodes().
  883.  
  884.   RESULT
  885.     None.
  886.  
  887.   NOTES
  888.     The list head is not freed by the user function, it is freed
  889.     using exec.library/FreeVec(). The userdata parameter was added for
  890.     V23 matrix.library.
  891.  
  892.   SEE ALSO
  893.     exec.library/FreeVec(), MX_FreeListNodes()
  894.  
  895. matrix.library/MX_FreeListNodes               matrix.library/MX_FreeListNodes
  896.  
  897.   NAME
  898.     MX_FreeListNodes -- free the nodes of a linked list (V22)
  899.  
  900.   SYNOPSIS
  901.     MX_FreeListNodes(head,hook,[userdata])
  902.                 a0   a1     [d0]
  903.  
  904.     APTR    head;
  905.     APTR    hook;
  906.     LONG    userdata;
  907.  
  908.   FUNCTION
  909.     Frees all nodes from a linked list, using specified userhook or
  910.     internal routines.
  911.  
  912.   INPUTS
  913.     head = pointer to list head.
  914.     hook = pointer to hook function. If this is NULL then the node
  915.         is freed using exec.library/FreeVec(), otherwise the userhook
  916.         called as UserHook(node,userdata)(a1,d0).
  917.  
  918.   RESULT
  919.     None.
  920.  
  921.   NOTES
  922.     The userdata parameter was added for V23 matrix.library and is
  923.     an optional parameter.
  924.  
  925.   SEE ALSO
  926.     exec.library/FreeVec(), MX_FreeList(), MX_TextFileToList()
  927.  
  928. matrix.library/MX_FreeMem                           matrix.library/MX_FreeMem
  929.  
  930.   NAME
  931.     MX_FreeMem -- OBSOLETE FUNCTION
  932.  
  933.   SYNOPSIS
  934.     MX_FreeMem(mem)
  935.           a1
  936.  
  937. matrix.library/MX_FullWBArgName               matrix.library/MX_FullWBArgName
  938.  
  939.  NAME
  940.     MX_FullWBArgName -- full path name of wb argument (V21)
  941.  
  942.  SYNOPSIS
  943.     success = MX_FullWBArgName(buffer,wbarg,len)
  944.       d0                         a0     a1   d0
  945.  
  946.     ULONG    success;
  947.     STRPTR    buffer;
  948.     struct    WbArg    *wbarg;
  949.     ULONG    len;
  950.  
  951.  INPUTS
  952.     buffer = pointer to the buffer to fill with the path name.
  953.     wbarg = the wb argument (see workbench.library)
  954.     len = length of the buffer.
  955.  
  956.  RESULT
  957.     returns TRUE if successful.
  958.  
  959.  NOTES
  960.     If the path is 'SPAM:' then this will be expanded to
  961.     'SPAM:disk'.
  962.  
  963.  SEE ALSO
  964.     workbench.library
  965.  
  966. matrix.library/MX_GetCatalogStr               matrix.library/MX_GetCatalogStr
  967.  
  968.   NAME
  969.     MX_GetCatalogStr -- get a localized string (V24)
  970.  
  971.   SYNOPSIS
  972.     string = MX_GetCatalogStr(catalog,catCompArray,stringNum)
  973.       d0                         a0       a1          d0
  974.  
  975.   FUNCTION
  976.     Localizes a string id if required.
  977.  
  978.   INPUTS
  979.     catalog = a message catalog.
  980.     catCompArray = pointer to catCompArray
  981.     stringNum = a message number within the catalog
  982.  
  983.   RESULT
  984.     string = a pointer to a NULL-terminated string. The returned string
  985.         is READ-ONLY, do NOT modify! This string pointer is valid only
  986.         as long as the catalog remains open.
  987.  
  988.   NOTE
  989.     If the CatCompArray is NULL then the STRPTR returned is
  990.     actually the stringNum passed in. Make sure you have a
  991.     pointer to a valid CatCompArray.
  992.     The CatCompArray is of the following format:
  993.         ULONG    id        ; id number
  994.         STRPTR    string        ;
  995.          .
  996.          .
  997.          .
  998.         ULONG    NULL
  999.  
  1000.     If the first longword of the CatCompArray is -1 then the
  1001.     array is treated as a packed list of the following format
  1002.         ULONG    id        ; id number
  1003.         UWORD    len        ; length of string
  1004.         UBYTE    string[len]    ; always an even length, single or double null terminated
  1005.          .
  1006.          .
  1007.          .
  1008.         ULONG    NULL
  1009.  
  1010.   SEE ALSO
  1011.     locale.library/GetCatalogStr()
  1012.  
  1013. matrix.library/MX_GetFont                           matrix.library/MX_GetFont
  1014.  
  1015.   NAME
  1016.     MX_GetFont -- Fills out textattr structure. (V22)
  1017.  
  1018.   SYNOPSIS
  1019.     font = MX_GetFont(textattr,tags)
  1020.      d0                 a0      a1
  1021.  
  1022.     struct    Font    *font;
  1023.     struct    TextAttr    *textattr;
  1024.     struct    TagItem    *tags;
  1025.  
  1026.   FUNCTION
  1027.     Fills out a text attribute structure based on the
  1028.     default system font. The font pointer returned may
  1029.     be null. In wich case the textattr structure will
  1030.     be filled out to "topaz.font", size 8. It is not
  1031.     necessary to call MX_FreeFont() if the font
  1032.     returned is NULL.
  1033.  
  1034.   INPUTS
  1035.     textattr = pointer to textattr structure to be filled.
  1036.     tags = pointer to a taglist (NULL).
  1037.  
  1038.   TAGS
  1039.     MXGF_FontName (UBYTE *) - pointer to name of font to open.
  1040.         This tag is mutually inclusive to MXGF_FontSize. The
  1041.         default for this is the system font. An additional
  1042.         extension has been provided, you may specify the
  1043.         fontname and size in the same string using a space
  1044.         as a separator.
  1045.             Example: "topaz.font 8" or "topaz 8"
  1046.  
  1047.     MXGF_FontSize (WORD) - size of the font to open. This tag
  1048.         is mutually inclusive to MXGF_FontName. The defaut
  1049.         for this is the system font.
  1050.  
  1051.     MXGF_FontSizeStr (STRPTR) - this is functionally the same
  1052.         as MXGF_FontSize except that a string pointer is used.
  1053.  
  1054.     MXGF_UseScreenFont (struct Screen *) - pointer to the
  1055.         screen to obtain the font. This will overide the
  1056.         default for MXGF_FontName and MXGF_FontSize is no
  1057.         name and size are specified. (V23)
  1058.  
  1059.   RESULT
  1060.     font = pointer to font opened or NULL.
  1061.  
  1062.   SEE ALSO
  1063.     MX_FreeFont(), diskfont.library/OpenDiskFont()
  1064.  
  1065. matrix.library/MX_HexStrLong                     matrix.library/MX_HexStrLong
  1066.  
  1067.   NAME
  1068.     MX_HexStrLong -- convert hex string to long (V19)
  1069.  
  1070.   SYNOPSIS
  1071.  
  1072.     value, success, next = MX_HexStrLong(string)
  1073.       d0      d1     a0                    a0
  1074.  
  1075.     STRPTR    string;
  1076.     ULONG    value;
  1077.  
  1078.   INPUTS
  1079.     string - pointer to valid hexadecimal string. This string
  1080.         may only contain a maximum of 8 characters selectable
  1081.         from "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f".
  1082.  
  1083.   RESULT
  1084.     value = the value of the hexidecimal string.
  1085.     success = indication on wether the conversion was
  1086.         successful or not.
  1087.     next  = pointer to the next byte to be processed in the
  1088.         string after the converted characters.
  1089.  
  1090.   NOTE
  1091.     
  1092.   SEE ALSO
  1093.  
  1094. matrix.library/MX_HookTag                           matrix.library/MX_HookTag
  1095.  
  1096.   NAME
  1097.     MX_HookTag -- call hook function from tag array (V23)
  1098.  
  1099.   SYNOPSIS
  1100.     result = MX_HookTag(tagarray,defhook,tagvalue,data)
  1101.       d0                   a0      a1       d0     d1
  1102.  
  1103.     struct    TagItem *tagarray;
  1104.     APTR    defhook;
  1105.     LONG    tagvalue;
  1106.     LONG    data;
  1107.  
  1108.   INPUTS
  1109.     tagarray    - pointer to array of tag items. The hook
  1110.         function is called as follows:
  1111.             Hook(data)(d0)
  1112.     defhook    - hook to call if tag item not found.
  1113.     tagvalue    - value of the tag item hook to call.
  1114.     data    - data passed to hook function.
  1115.  
  1116.   RESULT
  1117.     return value from hook function or NULL if no hook function
  1118.     was invoked.
  1119.  
  1120.   NOTES
  1121.     When the hook function is called registers a4 and a5
  1122.     are untouched.
  1123.  
  1124.   SEE ALSO
  1125.     MX_HookTagOrdered, utility.library/GetTagData()
  1126.  
  1127. matrix.library/MX_HookTagOrdered             matrix.library/MX_HookTagOrdered
  1128.  
  1129.   NAME
  1130.       MX_HookTagOrdered -- call hook function from tag array (V23)
  1131.  
  1132.   SYNOPSIS
  1133.     MX_HookTagOrdered(tagarray,defhook,tagvalue,data)
  1134.               a0      a1      d0     d1
  1135.  
  1136.     struct    TagItem *tagarray;
  1137.     APTR    defhook;
  1138.     LONG    tagvalue;
  1139.     LONG    data;
  1140.  
  1141.   FUNCTION
  1142.     This routine is functions identically to MX_HookTag()
  1143.     except that the array must be in order.
  1144.  
  1145.   INPUTS
  1146.     tagarray    - pointer to array of tag items. The hook
  1147.         function is called as follows:
  1148.             Hook(data)(d0)
  1149.     defhook    - hook to call if tag item not found.
  1150.     tagvalue    - value of the tag item hook to call.
  1151.     data    - data passed to hook function.
  1152.  
  1153.   RESULT
  1154.     None.
  1155.  
  1156.   SEE ALSO
  1157.     MX_HookTag, utility.library/GetTagData()
  1158.  
  1159. matrix.library/MX_JustifyText                   matrix.library/MX_JustifyText
  1160.  
  1161.   NAME
  1162.     MX_JustifyText -- justtify a buffer
  1163.  
  1164.   SYNOPSIS
  1165.     MX_JustifyText(source,dest,length)
  1166.                     a0    a1     d0
  1167.  
  1168.     APTR    source;
  1169.     APTR    dest;
  1170.     ULONG    length;
  1171.  
  1172.   FUNCTION
  1173.  
  1174.   INPUTS
  1175.     source    - pointer to source buffer to justify
  1176.     dest    - pointer to buffer to store the justified source buffer
  1177.     length    - length of the justify buffer
  1178.  
  1179.   RESULT
  1180.     None
  1181.  
  1182.   NOTE
  1183.     The source buffer must not exceed the length of the justfy.
  1184.     It is intended that the MX_WrapText() function be used before
  1185.     calling this routine to remove any partial word left on the
  1186.     end of the line. Any trailing spaces will be removed by this
  1187.     routine.
  1188.  
  1189.   BUGS
  1190.  
  1191.   SEE ALSO
  1192.     MX_WrapText()
  1193.  
  1194. matrix.library/MX_ListToArray                   matrix.library/MX_ListToArray
  1195.  
  1196.   NAME
  1197.     MX_ListToArray -- convert a list into an array (V23)
  1198.  
  1199.   SYNOPSIS
  1200.     array,numelements = MX_ListToArray(list,tags,numElements)
  1201.       d0      d1                        a0   a1      d0
  1202.  
  1203.   FUNCTION
  1204.     Converts a list into array form, the array consists of
  1205.     pointers to the list nodes, terminated with a NULL pointer
  1206.     to indicate end of list.
  1207.  
  1208.   INPUTS
  1209.     list = pointer to list.
  1210.     tags = pointer to a tag item array.
  1211.     numelements = number of elements in the list, if 0 then
  1212.         the list will be traversed to calculate the number of
  1213.         entries. This value MUST NOT be less than the number
  1214.         of list entries.
  1215.  
  1216.   TAGS
  1217.     MXLTA_AddOffset (WORD) = offset relative to the node to
  1218.         use as the pointer. Default is 0.
  1219.  
  1220.   RESULT
  1221.     Pointer to array of pointers to list nodes, use
  1222.     exec.library/FreeVec() to deallocate.
  1223.  
  1224.   SEE ALSO
  1225.     MX_QuickSort()
  1226.  
  1227. matrix.library/MX_Load8SVX                         matrix.library/MX_Load8SVX
  1228.  
  1229.   NAME
  1230.     MX_Load8SVX -- OBSOLETE FUNCTION
  1231.  
  1232.   SYNOPSIS
  1233.     MX_Load8SVX(filename,tags)
  1234.                    a0     d0
  1235.  
  1236. matrix.library/MX_LoadFIB                           matrix.library/MX_LoadFIB
  1237.  
  1238.  SYNTAX
  1239.     fib,typedata = MX_LoadFIB(type,typedata)
  1240.      d0    d1                  d0      d1
  1241.  INPUTS
  1242.     type    - specification of typedata, can be:
  1243.             LOADFIB_LOCK
  1244.             LOADFIB_FILEHANDLE
  1245.             LOADFIB_NAME
  1246.     typedata - lock, filehandle or pointer to filename.
  1247.  RESULTS
  1248.     fib    - pointer to fileinfo block, NULL if failed. Use MX_FreeFib()
  1249.         to discard this fib when finished.
  1250.  
  1251.  SEE ALSO
  1252.     MX_FreeFIB, dos.library/AllocDosObject(), dos.library/Examine()
  1253.  
  1254. matrix.library/MX_LoadFile                         matrix.library/MX_LoadFile
  1255.  
  1256.  SYNTAX
  1257.     buffer,length = MX_LoadFile(filename)
  1258.       d0     d1                    a0
  1259.  
  1260.  INPUTS
  1261.     filename = pointer to name fo file to load
  1262.  
  1263.  RESULTS
  1264.     buffer = pointer to buffer file read into, this is padded with a
  1265.        NULL byte. This is NULL if there is an error. To deallocate
  1266.        this buffer use exec.library/FreeVec().
  1267.     length = the number of bytes successfully read (this is not the
  1268.        length of the buffer).
  1269.  
  1270.  SEE ALSO
  1271.     exec.library/FreeVec()
  1272. matrix.library/MX_LoadIFF                           matrix.library/MX_LoadIFF
  1273.  
  1274.   NAME
  1275.     MX_LoadIFF() -- OBSOLETE
  1276.  
  1277.   SYNOPSIS
  1278.     iffhandle = MX_LoadIFF(iffhandle,filename,tags)
  1279.         d0                    a0        a1     a2
  1280.  
  1281. matrix.library/MX_LockMxBase                     matrix.library/MX_LockMxBase
  1282.  
  1283.   NAME
  1284.     MX_LockMxBase -- Invoke semaphore arbitration of MxBase.
  1285.  
  1286.   SYNOPSIS
  1287.     MX_LockMxBase()
  1288.  
  1289.   FUNCTION
  1290.     This locks the MxBase so the data may be read/modified.
  1291.  
  1292.   INPUTS
  1293.     None.
  1294.  
  1295.   RESULT
  1296.     None.
  1297.  
  1298.   NOTE
  1299.     This call is guaranteed to preserve all registers.
  1300.  
  1301.     A call to this function MUST be paired with a subsequent
  1302.     call to MX_UnlockMxBase(), and soon, please.
  1303.  
  1304.     Do not call any Matrix functions while    holding this
  1305.     lock, except for MX_UnlockMxBase().
  1306.  
  1307.   SEE ALSO
  1308.     MX_UnlockMxBase()
  1309.  
  1310. matrix.library/MX_MakeMenu_Localize       matrix.library/MX_MakeMenu_Localize
  1311.  
  1312.   NAME
  1313.     MX_MakeMenu_Localize -- make menus localized
  1314.  
  1315.   SYNOPSIS
  1316.     newmenu= MX_MakeMenu_Localize(newmenu, catalog, catCompArr,tags)
  1317.        d0                           a0      a1         a2      d0
  1318.  
  1319.     struct NewMenu *newmenu
  1320.     struct NewMenu *newmenu
  1321.     struct Catalog *catalog
  1322.     APTR    catCompArr
  1323.     struct TagItem *tags
  1324.  
  1325.   FUNCTION
  1326.     Make a menu using locale id's
  1327.  
  1328.   INPUTS
  1329.     newwmenu - pointer to GadTools NewMenu structure.
  1330.     catalog - pointer to locale catalog returned by
  1331.         locale.library/OpenCatalog().
  1332.     catCompArr - array of locale strings
  1333.     tags - pointer to taglist.
  1334.  
  1335.   RESULT
  1336.     pointer to a localize newmenu array or NULL for failure.
  1337.  
  1338.   SEE ALSO
  1339.     gadtools.library/CreateMenusA(), locale.library/OpenCatalog()
  1340.  
  1341. matrix.library/MX_MakePath                         matrix.library/MX_MakePath
  1342.  
  1343.   NAME
  1344.     MX_MakePath -- create an entire directory path (V22)
  1345.  
  1346.   SYNOPSIS
  1347.     success = MX_MakePath(path)
  1348.      d0                    a0
  1349.  
  1350.     BOOL    success;
  1351.     STRPTR    path;
  1352.  
  1353.   INPUTS
  1354.     path = pointer to path string.
  1355.  
  1356.   RESULT
  1357.     success = 0 if failure occurs.
  1358.  
  1359.   SEE ALSO
  1360.     dos.library/CreateDir(), MX_DeleteDirectory()
  1361.  
  1362. matrix.library/MX_ModifyListview             matrix.library/MX_ModifyListview
  1363.  
  1364.   NAME
  1365.     MX_ModifyListview -- change the list in a listview.
  1366.  
  1367.   SYNOPSIS
  1368.     MX_ModifyListview(gad,win,hook,data)
  1369.                  a0  a1  a2   d0
  1370.  
  1371.     struct    Gadget    *gad;
  1372.     struct    Window    *win;
  1373.     APTR    hook;
  1374.     LONG    data;
  1375.  
  1376.   FUNCTION
  1377.     Modifys a listview list, disables the list so that it may be
  1378.     modified and calls a hook function. The hook function returns a
  1379.     pointer to a list (generally the old list but modified.) The
  1380.     listview is then set to the new list. If no hook function is
  1381.     specified then the data parameter is used as the new list pointer.
  1382.  
  1383.   INPUTS
  1384.     gad - pointer to a listview gadget.
  1385.     win - pointer to a window.
  1386.     hook - pointer to user hook function or NULL. The hook function
  1387.         is called as follows:
  1388.         list = hook(data)
  1389.          d0          d0
  1390.     data - if a hook function is provided then this is treated as
  1391.         a user data field, otherwise is the hook pointer is NULL this
  1392.         is used as a pointer to a list.
  1393.  
  1394.   RESULT
  1395.     None.
  1396.  
  1397.   NOTES
  1398.     If the gad and win pointers are both NULL then the hook function
  1399.     will still be called, just that no gadget will be updated.
  1400.  
  1401.   SEE ALSO
  1402.     gadtools.library/GT_SetGadgetAttrsA()
  1403.  
  1404. matrix.library/MX_NewLoadIFF                     matrix.library/MX_NewLoadIFF
  1405.  
  1406.   NAME
  1407.     MX_NewLoadIFF -- load an IFF form file (V23)
  1408.  
  1409.   SYNOPSIS
  1410.     success = MX_NewLoadIFF(filename,tags)
  1411.       d0                       a0     a1
  1412.  
  1413.     ULONG    success;
  1414.     STRPTR    filename;
  1415.     struct    TagItem *tags;
  1416.  
  1417.   FUNCTION
  1418.     Reads an iff FORM file given a hunk definition.
  1419.  
  1420.   INPUTS
  1421.     filename = pointer to name of file to open.
  1422.     tags = pointer to taglist.
  1423.  
  1424.   RESULT
  1425.     success = TRUE if file load was completed successfully.
  1426.  
  1427.   TAGS
  1428.     MXIF_Filename (UBYTE *) - pointer to name of file to open, this
  1429.         overides the parameter passed to this function.
  1430.  
  1431.     MXIF_Type (ULONG) - type of IFF file to process. Eg "PREF".
  1432.  
  1433.     MXIF_HunkArray (APTR) - pointer to NULL terminated array of hunk
  1434.         descriptors. The hunk descriptor is a structure as follows
  1435.         ULONG - Hunk name (Eg. "PRHD" )
  1436.         ULONG - Hunk type
  1437.         ULONG - Data0
  1438.         ULONG - Data1
  1439.  
  1440.     MXIF_ValidateHook (APTR) - pointer to hook function called when
  1441.         the IFF file has been loaded.
  1442.         success = ValidateHook()
  1443.  
  1444.   SUPPORTED HUNK TYPES
  1445.  
  1446.     MXIF_Raw
  1447.     MXIF_HookMULTI
  1448.     MXIF_HookOWNCHUNK
  1449.     MXIF_STRING
  1450.  
  1451.   SEE ALSO
  1452.     MX_NewSaveIFF()
  1453.  
  1454. matrix.library/MX_NewPrefsWH                     matrix.library/MX_NewPrefsWH
  1455.  
  1456.   NAME
  1457.     MX_NewPrefsWH -- process window as a preferences program (V23)
  1458.  
  1459.   SYNOPSIS
  1460.     result = MX_NewPrefsWH(tags)
  1461.       d0                    a0
  1462.  
  1463.     ULONG    result;
  1464.     struct    TagItem *tags;
  1465.  
  1466.   FUNCTION
  1467.     Handles all processing for a standard workbench style preferences
  1468.     program. All standard preferences operations are supported, such
  1469.     as the loading, saving and restoring of data, menu functions and
  1470.     load/save as file requestors.
  1471.  
  1472.   INPUTS
  1473.     tags = pointer to taglist.
  1474.  
  1475.   RESULT
  1476.     result = 0,1,2 (Cancel,Use,Save)
  1477.  
  1478.   TAGS
  1479.  
  1480.     MXPF_AboutMenuHook (void *) - pointer to hook function to handle
  1481.         selection of the about menu item. You do not get an about menu
  1482.         item if this tag is NULL. Default NULL.
  1483.  
  1484.     MXPF_ASLInfo (WORD *) - a pointer to 4 words containing the asl file
  1485.         requestor positional and dimensional information.
  1486.  
  1487.     MXPF_DefaultHook (APTR) - this hook is called when the default
  1488.         settings has been selected from the menu.
  1489.  
  1490.     MXPF_Font (STRPTR) - pointer to fontname to use for gadgets etc...
  1491.         If null then the default system font will be used.
  1492.  
  1493.     MXPF_IFFTags (APTR) - pointer to tag array for MX_NewLoadIFF() and
  1494.         MX_NewSaveIFF().
  1495.  
  1496.     MXPF_InitialLoad (BOOLEAN) - set this to TRUE to load the initial
  1497.         preferences settings. Default = TRUE.
  1498.  
  1499.     MXPF_LoadSaveDir (UBYTE *) - pointer to default directory for the
  1500.         Open and Save filerequestors to go to.
  1501.  
  1502.     MXPF_LoadTitle (UBYTE *) - this string overides the MXPF_Title for
  1503.         the Open file requestor.
  1504.  
  1505.     MXPF_NewDataHook (APTR) - this hook is called when the preferences
  1506.         data is loaded or reset.
  1507.  
  1508.     MXPF_PreSaveHook (APTR) - pointer to user function called before
  1509.         any file saving operations. NOTE: It is called only once when
  1510.         the user selects SAVE and the ENVARC: and ENV: files are
  1511.         written. This hook is also called when the user selects
  1512.         "Save As..." from the menu.
  1513.  
  1514.     MXPF_PubScreenName (UBYTE *) - pointer to public screen name. If no
  1515.         screen name is provided then the default public screen is used.
  1516.  
  1517.     MXPF_QuitMenuHook (void *) - pointer to hook function invoked when
  1518.         quit is selected from the menu. Default = Cancel the prefs.
  1519.  
  1520.     MXPF_SaveFile (UBYTE *) - filename to save the preferences as.
  1521.  
  1522.     MXPF_SaveTitle (UBYTE *) - this string overides the MXPF_Title for
  1523.         the Save file requestor.
  1524.  
  1525.     MXPF_Screen (struct Screen *) - pointer to screen to open on. If no
  1526.          visual info tag is provided then the visual info will be
  1527.          obtained automatically.
  1528.  
  1529.     MXPF_Title (UBYTE *) - default name to be used in Open and Save file
  1530.         requestors. The title will be inserted as:
  1531.         "Load %s Preferences" and "Save %s Preferences"
  1532.  
  1533.     MXPF_UseFile (UBYTE *) - file name to use the preferences as, this
  1534.         is also the name used to load the initial preferences settings.
  1535.  
  1536.     MXPF_VisualInfo (APTR) - pointer to screen visual info returned by
  1537.         gadtools/GetVisualInfoA().
  1538.  
  1539.     MXPF_WHTags (struct TagItem *) - pointer to standard matrix
  1540.         windowhandler tag item array. See MX_WindowHandler().
  1541.  
  1542.     MXPF_Window (struct Window *) - pointer to parent window. You need
  1543.         to specify MXPF_VisualInfo if you are using this tag.
  1544.         Currently this tag has not been implemented.
  1545.  
  1546.  
  1547.   SEE ALSO
  1548.     MX_PrefsWH(), MX_NewLoadIFF(), MX_NewSaveIFF(), MX_WindowHandler(),
  1549.     MX_WindowHandler2(), intuition.library/OpenWindowTagList(),
  1550.     gadtools.library/GetVisualInfoA()
  1551.  
  1552. matrix.library/MX_NewReadArgs                   matrix.library/MX_NewReadArgs
  1553.  
  1554.   NAME
  1555.     MX_NewReadArgs -- Parse the arguments (V23)
  1556.  
  1557.   SYNOPSIS
  1558.  
  1559.     MXArgLock = MX_NewReadArgs(template,array,tags)
  1560.        d0                         a0     a1    a2
  1561.  
  1562.     struct    *MXArgLock;
  1563.     STRPTR    *template;
  1564.     LONG    *array;
  1565.     struct    TagItem *tags;
  1566.  
  1567.   INPUTS
  1568.     template = see dos.library/ReadArgs() for details. Currently only a
  1569.         subset of the dos template types are supported for tool types,
  1570.         they are: /K, /N, /K/N, and /S
  1571.  
  1572.     array = array of longwords for results, 1 per template entry
  1573.  
  1574.     tags = pointer to a tag list or NULL.
  1575.  
  1576.   RESULT
  1577.     MXArgLock - NULL for failure. Call MX_FreeArgs with this pointer to
  1578.             deallocated any resources used.
  1579.  
  1580.   TAGS
  1581.  
  1582.     MXRA_DosFallback (BOOLEAN) - fallback to processing the dos cli
  1583.         arguments when we are run from cli. This is only valid when the
  1584.         tool types have been set by MXRA_TryLoadIcon and allow the tool
  1585.         types to act as set values and any cli arguments will overide
  1586.         these values. Defaults to TRUE. (V24)
  1587.  
  1588.     MXRA_ToolTypes (APTR) - pointer to tool type array to use instead of
  1589.         using the tooltypes from WBStartup message. (V23)
  1590.  
  1591.     MXRA_TryLoadIcon (BOOLEAN) - if TRUE then the icon for the program
  1592.         will be loaded and used for argument processing if no tool types
  1593.         were provided by any other means. (V23)
  1594.  
  1595.     MXRA_WBMessage (APTR) - pointer to WBStartup message. This is used to
  1596.         set the tool types array if it was not provided by MXRA_ToolTypes.
  1597.         (V23)
  1598.  
  1599.   SEE ALSO
  1600.     MX_ReadArgs(), MX_FreeArgs(), dos.library/ReadArgs()
  1601.     dos.library/FindArg(), dos.library/ReadItem(), dos.library/FreeArgs()
  1602.  
  1603. matrix.library/MX_NewSaveIFF                     matrix.library/MX_NewSaveIFF
  1604.  
  1605.   NAME
  1606.     MX_NewSaveIFF -- save an IFF form file (V23)
  1607.  
  1608.   SYNOPSIS
  1609.     success = MX_NewSaveIFF(filename,tags)
  1610.       d0                       a0     a1
  1611.  
  1612.     ULONG    success;
  1613.     STRPTR    filename;
  1614.     struct    TagItem *tags;
  1615.  
  1616.   FUNCTION
  1617.     Writes an iff FORM file given a hunk definition.
  1618.  
  1619.   INPUTS
  1620.     filename = pointer to name of a new file to open.
  1621.     tags = pointer to taglist.
  1622.  
  1623.   RESULT
  1624.     success = TRUE if file save was completed successfully.
  1625.  
  1626.   TAGS
  1627.     MXIF_CreateDir (BOOLEAN) - if the directory for the file
  1628.         does not exist then an attempt will be made to make
  1629.         the directory. If successful then the file open will
  1630.         be reattempted.
  1631.  
  1632.     see MX_NewLoadIFF() for additional tags
  1633.  
  1634.   SEE ALSO
  1635.     MX_NewLoadIFF()
  1636.  
  1637. matrix.library/MX_NewSortList                   matrix.library/MX_NewSortList
  1638.  
  1639.   NAME
  1640.     MX_NewSortList() -- sort a list (v23)
  1641.  
  1642.   SYNOPSIS
  1643.     success = MX_NewSortList(list,hook,tags,elements,data)
  1644.       d0                      a0   a1   a2    d0      d1
  1645.  
  1646.   FUNCTION
  1647.     Sort a linked list using a callback hook for node
  1648.     comparisions.
  1649.  
  1650.   INPUTS
  1651.     list = pointer to a list to be sorted
  1652.  
  1653.     hook = comparison hook function called as follows:
  1654.             result/d0 = hook(node1,node2,data)(a0,a1,a6)
  1655.              -1 = node1 > node 2
  1656.               0 = same
  1657.               1 = node1 < node 2
  1658.            If the hook is NULL then a default hook is
  1659.            used which compares the LN_NAME strings and
  1660.            is case sensitive.
  1661.  
  1662.     tags = pointer to taglist, NULL.
  1663.  
  1664.     elements = number of elements in the array, if NULL then
  1665.         the list will be traversed to compute the number of
  1666.         elements. If provided, this *MUST* be at least the
  1667.         number of elements in the list.
  1668.  
  1669.     data = passed to hook function in a6
  1670.  
  1671.   RESULT
  1672.     FALSE if list was not sorted.
  1673.  
  1674.   TAGS
  1675.     None
  1676.  
  1677.   NOTES
  1678.     The sorting algorithm currently used is QuickSort.
  1679.  
  1680.   SEE ALSO
  1681.     MX_SortList(), MX_QuickSort()
  1682.  
  1683. matrix.library/MX_NextForm                         matrix.library/MX_NextForm
  1684.  
  1685.   NAME
  1686.     MX_NextForm -- OBSOLETE FUNCTION
  1687.  
  1688.   SYNOPSIS
  1689.     MX_NextForm(formhandle)
  1690.                      a0
  1691.  
  1692. matrix.library/MX_OpenForm                         matrix.library/MX_OpenForm
  1693.  
  1694.   NAME
  1695.     MX_OpenForm -- OBSOLETE FUNCTION
  1696.  
  1697.   SYNOPSIS
  1698.     formhandle = MX_OpenForm(name,type,mode,tags)
  1699.         d0                    a0   a1   d0   d1
  1700.  
  1701. matrix.library/MX_OpenFormReq                   matrix.library/MX_OpenFormReq
  1702.  
  1703.   NAME
  1704.     MX_OpenFormReq -- OBSOLETE FUNCTION
  1705.  
  1706.   SYNOPSIS
  1707.     formhandle = MX_OpenFormReq(hail,path,file,type,mode,tags)
  1708.         d0                       a0   a1   a2   a3   d0   d1
  1709.  
  1710. matrix.library/MX_OpenPathNew                   matrix.library/MX_OpenPathNew
  1711.  
  1712.   NAME
  1713.     MX_OpenPathNew -- open a file as NEW (V23)
  1714.  
  1715.   SYNOPSIS
  1716.     fh = MX_OpenPathNew(name)
  1717.     d0                   a0
  1718.  
  1719.     struct    filehanle *fh;
  1720.     STRPTR    name;
  1721.  
  1722.   FUNCTION
  1723.     Opens a file creating the path if necessary.
  1724.  
  1725.   INPUTS
  1726.     name = pointer to filename, if the path cannot be locked then
  1727.         an attempt is made to create that path. If it is not
  1728.         possible to make the path then this function returns
  1729.         FALSE as the file cannot be opened as NEW. If the path
  1730.         exists then This function is similar to
  1731.             fh = Open(filename,MODE_NEWFILE);
  1732.   RESULT
  1733.     Returns FALSE if unable to open file or create path to file.
  1734.  
  1735.   SEE ALSO
  1736.     dos.library/Open(), dos.library/Close()
  1737.  
  1738. matrix.library/MX_PatternMatch                 matrix.library/MX_PatternMatch
  1739.  
  1740.   NAME
  1741.     MX_PatternMatch -- perform dos patternmatching on a string. (V23)
  1742.  
  1743.   SYNTAX
  1744.     result = MX_PatternMatch(string,pattern)
  1745.       d0                       a0      a1
  1746.  
  1747.     LONG    result;
  1748.     STRPTR    string;
  1749.     STRPTR    pattern;
  1750.  
  1751.   FUNCTION
  1752.     Matches the string against the specified pattern.
  1753.  
  1754.   INPUTS
  1755.     string = pointer to string.
  1756.     pattern = pointer to pattern for pattern matching.
  1757.   RESULT
  1758.     result = success or failure of pattern match. Returns ~0
  1759.         if run out of memory/stack.
  1760.  
  1761.   NOTES
  1762.     The pattern matching is not case sensitive.
  1763.  
  1764.   SEE ALSO
  1765.     dos.library/ParsePatternNoCase(), dos.library/MatchPatternNoCase()
  1766.  
  1767. matrix.library/MX_ProcessArexxPort         matrix.library/MX_ProcessArexxPort
  1768.  
  1769.   NAME
  1770.     MX_ProcessArexxPort -- process arexx messages (V23)
  1771.  
  1772.   SYNTAX
  1773.     MX_ProcessArexxPort(port,vectors,[userdata])(a0,a1,[d0])
  1774.  
  1775.     struct    MsgPort    *port;
  1776.     APTR    *vectors;
  1777.     ULONG    userdata;
  1778.  
  1779.   FUNCTION
  1780.     Process any messages arriving at an arexx port through Hook
  1781.     functions.
  1782.  
  1783.   INPUTS
  1784.     port = pointer to an arexx message port. You can easily create
  1785.         an arexx message port by calling MX_AddArexxPort().
  1786.  
  1787.     vectors = pointer to an array of pointers to command strings
  1788.         and hook functions, terminated by a command string pointer
  1789.         of null.
  1790.  
  1791.         The hook function is called as follows:
  1792.         result = Hook(msg,args,userdata)
  1793.           d0           a0  a1     d0
  1794.  
  1795.     userdata = optional parameter, this is passed to the hook
  1796.         function.
  1797.   RESULT
  1798.     None.
  1799.  
  1800.   SEE ALSO
  1801.     MX_AddArexxPort(), MX_RemArexxPort()
  1802.  
  1803. matrix.library/MX_QuickSort                       matrix.library/MX_QuickSort
  1804.  
  1805.   NAME
  1806.     MX_QuickSort() -- sort an array (v23)
  1807.  
  1808.   SYNOPSIS
  1809.     MX_QuickSort(array,hook,elements,data)
  1810.                    a0   a1     d0     d1
  1811.  
  1812.   FUNCTION
  1813.     Sort an array using callback hook.
  1814.  
  1815.   INPUTS
  1816.     array = pointer to an array of longwords, when this
  1817.         is called by MX_NewSortList() this is an array of
  1818.         pointers to nodes.
  1819.  
  1820.     hook = comparison hook function called as follows:
  1821.             result/d0 = hook(e1,e2,data)(a0,a1,a6)
  1822.              -1 = e1 > e2
  1823.               0 = same
  1824.               1 = e1 < e2
  1825.  
  1826.     elements = number of elements in the array, if NULL then
  1827.         the list will be traversed to compute the number of
  1828.         elements. If provided, this *MUST* be at least the
  1829.         number of elements in the list.
  1830.  
  1831.     data = passed to user hook function in a6
  1832.  
  1833.   RESULT
  1834.     None.
  1835.  
  1836.   SEE ALSO
  1837.     MX_NewSortList(), MX_ListToArray()
  1838.  
  1839. matrix.library/MX_Random                             matrix.library/MX_Random
  1840.  
  1841.   NAME
  1842.     MX_Random -- generate a random number (V22)
  1843.  
  1844.   SYNOPSIS
  1845.     number = MX_Random(range)
  1846.           d0                 d0
  1847.  
  1848.     LONG    number;
  1849.     LONG    range;
  1850.  
  1851.   INPUTS
  1852.     range = the largest number to generate. The generated number will
  1853.         fall in the range from 0 to "range"
  1854.  
  1855.   RESULT
  1856.     number = the random number generated.
  1857.  
  1858.   SEE ALSO
  1859.     MX_RandomSeed(), MX_RandomInRange()
  1860.  
  1861. matrix.library/MX_RandomInRange               matrix.library/MX_RandomInRange
  1862.  
  1863.   NAME
  1864.     MX_RandomInRange -- generate a random number (V23)
  1865.  
  1866.   SYNOPSIS
  1867.     number = MX_RandomInRange(min,max)
  1868.     d0                        d0  d1
  1869.  
  1870.     LONG    number;
  1871.     LONG    min;
  1872.     LONG    max;
  1873.  
  1874.   INPUTS
  1875.     min = the minimum value to generate
  1876.     max = the maximum value to generate
  1877.  
  1878.   RESULT
  1879.     number = a randomly generated number greater or equal to
  1880.         min and less or equal to max:
  1881.  
  1882.         min =< number =< max
  1883.  
  1884.   SEE ALSO
  1885.     MX_RandomSeed(), MX_Random()
  1886.  
  1887. matrix.library/MX_RandomSeed                     matrix.library/MX_RandomSeed
  1888.  
  1889.   NAME
  1890.     MX_RandomSeed -- seed the random number tables. (V22)
  1891.  
  1892.   NOTES
  1893.     This function is private for use by matrix.library only.
  1894.  
  1895.   SEE ALSO
  1896.     MX_Random(), MX_RandomInRange()
  1897.  
  1898. matrix.library/MX_RawFormat                       matrix.library/MX_RawFormat
  1899.  
  1900.   NAME
  1901.     MX_RawFormat -- format data into a character stream. (V21)
  1902.  
  1903.   SYNOPSIS
  1904.     NextData = MX_RawFormat(FormatString,DataStream,Destination)
  1905.        d0                        a0          a1          a2
  1906.  
  1907.     APTR    NextData;
  1908.     STRPTR    FormatString;
  1909.     APTR    DataStream;
  1910.     APTR    Destination;
  1911.  
  1912.   FUNCTION
  1913.     This function is identical to the exec.library/RawDoFmt() function
  1914.     except it does not require the PuchChProc.
  1915.  
  1916.   INPUTS
  1917.     FormatString - a "C"-language-like NULL terminated format string.
  1918.  
  1919.     DataStream - a stream of data that is interpreted according to the
  1920.         format string.  Often this is a pointer into the task's stack.
  1921.  
  1922.     Destination - pointer to a buffer to fill with the formatted
  1923.         string.
  1924.   RESULT
  1925.     NextData = pointer to end of the data stream, this allows multiple
  1926.         formatting passes to be made using the same data.
  1927.  
  1928.   SEE ALSO
  1929.     exec.library/RawDoFmt().
  1930.  
  1931. matrix.library/MX_ReadArgs                         matrix.library/MX_ReadArgs
  1932.  
  1933.   NAME
  1934.     MX_ReadArgs -- Parse the command line / wbmsg input (V23)
  1935.  
  1936.   SYNOPSIS
  1937.  
  1938.     MXArgLock = MX_ReadArgs(template,array,[wbmsg])
  1939.        d0                      a0     a1    [a2]
  1940.  
  1941.     struct    *MXArgLock;
  1942.     STRPTR    *template;
  1943.     LONG    *array;
  1944.     struct    *WBMessage wbmsg;
  1945.  
  1946.   INPUTS
  1947.     template    - see dos.library/ReadArgs() for details on definition of
  1948.         the template. Currently supported supported tool types are
  1949.         "/K, /N, /K/N, and /S".
  1950.  
  1951.     array    - array of longwords for results, 1 per template entry
  1952.  
  1953.     wbmsg    - pointer to message from workbench, this only needs to be
  1954.             provided if you were not started from CLI.
  1955.  
  1956.   RESULT
  1957.     MXArgLock - NULL for failure. Call MX_FreeArgs with this pointer to
  1958.             deallocated any resources used.
  1959.  
  1960.   NOTES
  1961.     This function is obsolete, use MX_NewReadArgs() instead.
  1962.  
  1963.   SEE ALSO
  1964.     MX_NewReadArgs(), MX_FreeArgs(), dos.library/ReadArgs()
  1965.     dos.library/FindArg(), dos.library/ReadItem(), dos.library/FreeArgs()
  1966.  
  1967. matrix.library/MX_ReadForm                         matrix.library/MX_ReadForm
  1968.  
  1969.   NAME
  1970.     MX_ReadForm -- OBSOLETE FUNCTION
  1971.  
  1972.   SYNOPSIS
  1973.     MX_ReadForm(formhandle,buffer,size)
  1974.                      a0       a1    d0
  1975.  
  1976. matrix.library/MX_ReadFormTagList           matrix.library/MX_ReadFormTagList
  1977.  
  1978.   NAME
  1979.     MX_ReadFormTagList -- OBSOLETE FUNCTION
  1980.  
  1981.   SYNOPSIS
  1982.     MX_ReadFormTagList(formhandle,buffer,size,tags)
  1983.                              a0      a1    d0   d1
  1984.  
  1985. matrix.library/MX_RemArexxPort                 matrix.library/MX_RemArexxPort
  1986.  
  1987.   NAME
  1988.     MX_RemArexxPort -- remove a public arexx message port. (V23)
  1989.  
  1990.   SYNOPSIS
  1991.     MX_RemArexxPort(port,hook,[userdata])
  1992.                a0   a1     [d0]
  1993.     struct    MsgPort *port;
  1994.     APTR    hook;
  1995.  
  1996.   FUNCTION
  1997.     Remove an arexx port from the system safely, replying any waiting
  1998.     messages using ReplyMsg() or userhook().
  1999.  
  2000.   INPUTS
  2001.     port - pointer to port added using MX_AddArexxPort(). May be NULL.
  2002.     hook - pointer to user function that is called to reply any messages
  2003.         waiting at this port. If NULL then the message will be replied
  2004.         using ReplyMsg(). The userhook is invoked as follows:
  2005.             userhook(msg,userdata)
  2006.                       a1    d0
  2007.   RESULT
  2008.     None.
  2009.  
  2010.   SEE ALSO
  2011.     MX_AddArexxPort(), MX_ProcessArexxPort(), exec.library/RemPort(),
  2012.     exec.library/DeleteMsgPort(), exec.library/ReplyMsg().
  2013. matrix.library/MX_RemVBlankNode               matrix.library/MX_RemVBlankNode
  2014.  
  2015.   NAME
  2016.     MX_RemVBlankNode -- remove vblank node hook or signal (V23)
  2017.  
  2018.   SYNOPSIS
  2019.     MX_RemVBlankNode(vbn)
  2020.                 a0
  2021.  
  2022.     struct    MXVBlankNode *vbn;
  2023.  
  2024.   FUNCTION
  2025.     Remove an added MXVBlank node.
  2026.  
  2027.   INPUTS
  2028.     vbn = pointer to MXVBlankNode to remove or NULL.
  2029.  
  2030.   RESULT
  2031.     None.
  2032.  
  2033.   SEE ALSO
  2034.     MX_AddVBlankNode(), MX_UpdateVBLankInterrupt()
  2035.  
  2036. matrix.library/MX_RemakeGadgets               matrix.library/MX_RemakeGadgets
  2037.  
  2038.   NAME
  2039.     MX_RemakeGadgets -- update the gadgets (V22)
  2040.  
  2041.   SYNOPSIS
  2042.     MX_RemakeGadgets(gadgets,window)
  2043.                        d0      a0
  2044.  
  2045.     struct    Gadget    *gadgets;
  2046.     strcut    Window    *window;
  2047.  
  2048.   FUNCTION
  2049.     Remakes the gadgets when the data changes.
  2050.  
  2051.   INPUTS
  2052.     gadgets = pointer to gadgets created by MX_CreateGadgets().
  2053.         If NULL then the gadget pointer from the window will
  2054.         be used.
  2055.  
  2056.     window = pointer to window gadgets are in.
  2057.  
  2058.   RESULT
  2059.     None.
  2060.  
  2061.   SEE ALSO
  2062.     MX_CreateGadgets(), MX_CleanUpGList()
  2063.  
  2064. matrix.library/MX_ReplaceTags                   matrix.library/MX_ReplaceTags
  2065.  
  2066.   NAME
  2067.     MX_ReplaceTags -- change the tag values in a tag array (V24)
  2068.  
  2069.   SYNOPSIS
  2070.     MX_ReplaceTags(tagArray,replaceArray,flags)
  2071.                       a0         a1        d0
  2072.  
  2073.     struct    TagItem    *tagArray;
  2074.     APTR    replaceArray;
  2075.     ULONG    flags;
  2076.  
  2077.   FUNCTION
  2078.     Changes the tag value id's in a tag array to those specified
  2079.     by the replacement array.
  2080.  
  2081.   INPUTS
  2082.     tagArray - pointer to a valid tag item array.
  2083.  
  2084.     replaceArray - an array of ULONG tag id pairs, the first is
  2085.         the source tag to search for and the second is its
  2086.         replacement tag id.
  2087.  
  2088.     flags - NULL. None defined.
  2089.  
  2090.   RESULT
  2091.     None.
  2092.  
  2093.   NOTES
  2094.     Tags not found in the replacement array are marked TAG_IGNORE.
  2095.  
  2096.   SEE ALSO
  2097.  
  2098. matrix.library/MX_ReplaceVecStr               matrix.library/MX_ReplaceVecStr
  2099.  
  2100.   NAME
  2101.     MX_ReplaceVecStr -- alloc/update a string and buffer (V23)
  2102.  
  2103.   SYNOPSIS
  2104.     mem = MX_ReplaceVecStr(string,handle,attributes)
  2105.     d0             a0     a1       d1
  2106.  
  2107.     APTR    mem;
  2108.     STRPTR    string;
  2109.     APTR    *handle;
  2110.     ULONG    attributes;
  2111.  
  2112.   FUNCTION
  2113.     Allocates a buffer for the string and copys the string into
  2114.     the buffer. Frees the old buffer pointed to by the handle, and
  2115.     updates the handle to point to the new buffer.
  2116.  
  2117.   INPUTS
  2118.     string = pointer to a string.
  2119.     handle = pointer to storage space for string pointer.
  2120.     attributes = exec.library/AllocVec() memory attributes.
  2121.  
  2122.   RESULT
  2123.     Pointer to buffer containing the string, or NULL if not enough
  2124.     memory for the buffer.
  2125.  
  2126.   NOTE
  2127.     Use exec.library/FreeVec() to deallocate the buffer.
  2128.  
  2129.   SEE ALSO
  2130.     MX_AllocVecStr(), exec.library/AllocVec(), exec.library/FreeVec()
  2131.  
  2132. matrix.library/MX_SaveIFF                           matrix.library/MX_SaveIFF
  2133.  
  2134.   NAME
  2135.     MX_SaveIFF() -- OBSOLETE
  2136.  
  2137.   SYNOPSIS
  2138.     result = MX_SaveIFF(iffhandle,filename,tags)
  2139.       d0                    a0        a1     a2
  2140.  
  2141. matrix.library/MX_SeekForm                         matrix.library/MX_SeekForm
  2142.  
  2143.   NAME
  2144.     MX_SeekForm -- OBSOLETE FUNCTION
  2145.  
  2146.   SYNOPSIS
  2147.     MX_SeekForm(formhandle,pos,mode)
  2148.                     a0     d0   d1
  2149.  
  2150. matrix.library/MX_SelectGadget                 matrix.library/MX_SelectGadget
  2151.  
  2152.  NAME
  2153.     MX_SelectGadget -- show a gadget being selected
  2154.  
  2155.  SYNOPSIS
  2156.     MX_SelectGadget(window,gadget)
  2157.                       a0     a1
  2158.  
  2159.     struct Window *window;
  2160.     struct Gadget *gadget;
  2161.  
  2162.  FUNCTION
  2163.  
  2164.  INPUTS
  2165.     window = pointer to window containing gadget
  2166.     gadget = pointer to the gadget to show being selected
  2167.  
  2168.  RESULT
  2169.     None
  2170.  
  2171.  BUGS
  2172.  
  2173.  SEE ALSO
  2174.  
  2175. matrix.library/MX_SendArexxString           matrix.library/MX_SendArexxString
  2176.  
  2177.   NAME
  2178.     MX_SendArexxString -- send a command to an arexx port (V20)
  2179.  
  2180.   SYNOPSIS
  2181.     res1,res2,port = MX_SendArexxString(string,portname,replyport)
  2182.      d0   d1   a0                         a0      a1       a2
  2183.  
  2184.     ULONG    res1;
  2185.     ULONG    res2;
  2186.     STRPTR    string;
  2187.     STRPTR    pointname;
  2188.     struct    MsgPort    *replyport;
  2189.  
  2190.   FUNCTION
  2191.     Sends an arexx message to an arexx port and waits for the
  2192.     reply.
  2193.  
  2194.   INPUTS
  2195.     string - pointer to null terminated string to send to specified
  2196.         arexx message port.
  2197.  
  2198.     portname - name of arexx message port to send message to.
  2199.  
  2200.     replyport - NULL. [Not Supported]
  2201.  
  2202.   RESULT
  2203.     res1,res2 = return values from arexx message or -1 if failed.
  2204.  
  2205.   SEE ALSO
  2206.     exec.library/FindPort(), exec.library/PutMsg()
  2207.     rexxsyslib.library/CreateRexxMsg(), rexxsyslib.library/CreateArgstring
  2208.     rexxsyslib.library/FillRexxMsg, rexxsyslib.library/ClearRexxMsg
  2209.     rexxsyslib.library/DeleteRexxMsg    
  2210.  
  2211. matrix.library/MX_SetListView                   matrix.library/MX_SetListView
  2212.  
  2213.   NAME
  2214.     MX_SetListView -- change/disable list and enable/disable gadget (V23).
  2215.  
  2216.   SYNOPSIS
  2217.     MX_SetListView(gad,win,list,entry)
  2218.               a0  a1  d0    d1
  2219.     struct    Gadget    *gad;
  2220.     struct    Window    *win;
  2221.     struct    List    *list;
  2222.     WORD    entry;
  2223.  
  2224.   FUNCTION
  2225.     Changes the list being used by the listview gadget and enables
  2226.     or disables the list if there are entries in it or not.
  2227.  
  2228.   INPUTS
  2229.     gad = pointer to the listview gadget or NULL for no action.
  2230.     win = pointer to the window or NULL for no action.
  2231.     list = pointer to a list or ~0 to disable the current
  2232.         list. If NULL then the listview will be disabled.
  2233.     entry = entry number in the list to set active.
  2234.  
  2235.   RESULT
  2236.     None.
  2237.  
  2238.   SEE ALSO
  2239.     gadtools.library/GT_SetGadgetAttrsA()
  2240.  
  2241. matrix.library/MX_SetWaitPointer             matrix.library/MX_SetWaitPointer
  2242.  
  2243.   NAME
  2244.     MX_SetWaitPointer -- make the pointer a busy pointer
  2245.  
  2246.   SYNOPSIS
  2247.     MX_SetWaitPointer(?)
  2248.  
  2249.   FUNCTION
  2250.  
  2251.   INPUTS
  2252.     ?
  2253.  
  2254.   RESULT
  2255.     None
  2256.  
  2257.   NOTE
  2258.  
  2259.   BUGS
  2260.  
  2261.   SEE ALSO
  2262.  
  2263. matrix.library/MX_ShowWindow                     matrix.library/MX_ShowWindow
  2264.  
  2265.   NAME
  2266.     MX_ShowWindow -- show window active by a task (V23)
  2267.  
  2268.   SYNOPSIS
  2269.     MX_ShowWindow(window,[task])
  2270.                a0     a1
  2271.     struct    Window    *window;
  2272.     struct    Task    *task;
  2273.  
  2274.   FUNCTION
  2275.     Will make a window visible to the user by all means possible. If
  2276.     no window pointer is given then the task pointer is used and
  2277.     the pr_WindowPtr() field is extracted and used as the window
  2278.     pointer.
  2279.   INPUTS
  2280.     window = pointer to the window to show or NULL.
  2281.     task = pointer to task to use pr_WindowPtr(). You only need to
  2282.         specify this field if window is NULL. This may also be NULL,
  2283.         in which case nothing will happen.
  2284.   RESULT
  2285.     The window (if any) will be brought to the fron of the screen
  2286.     it is on, unzipped (if zipped) and the screen will come to
  2287.     the front of the display.
  2288.  
  2289.   SEE ALSO
  2290.     intuition.libraryActivateWindow(), intuition.libraryWindowToFront()
  2291.     intuition.libraryZipWindow(), intuition.libraryScreenToFront()
  2292.  
  2293. matrix.library/MX_SortList                         matrix.library/MX_SortList
  2294.  
  2295.   NAME
  2296.     MX_SortList -- sort a linked list. (V22)
  2297.  
  2298.   SYNOPSIS
  2299.     MX_SortList(list)
  2300.            a0
  2301.  
  2302.     APTR    list;
  2303.  
  2304.   FUNCTION
  2305.     Sorts a linked list into prioritized alphbetic order.
  2306.  
  2307.   INPUTS
  2308.     list = pointer to linked list to sort.
  2309.  
  2310.   RESULT
  2311.     None.
  2312.  
  2313.   NOTES
  2314.     Make sure the LN_PRI field of each node is set, if you do
  2315.     not want a prioritized sort then set this to zero for all nodes.
  2316.     This function call MX_NewSortList().
  2317.  
  2318.  
  2319.   SEE ALSO
  2320.     MX_NewSortList(),MX_AddNodeSorted(), MX_TextFileToList(),
  2321.     MX_FreeListNodes(),    MX_FreeList()
  2322.  
  2323. matrix.library/MX_SoundID                           matrix.library/MX_SoundID
  2324.  
  2325.   NAME
  2326.     MX_SoundID -- play a sound ID through MSD. (V23)
  2327.  
  2328.   SYNOPSIS
  2329.     result = MX_SoundID(basename,name)
  2330.       d0                   a0     a1
  2331.  
  2332.     STRPTR    basename;
  2333.     STRPTR    name;
  2334.  
  2335.   FUNCTION
  2336.     Plays a sound ID through matrix sound daemon (MSD).
  2337.  
  2338.   INPUTS
  2339.     basename - pointer to string to be used as a base path for the
  2340.         sample id. This may be NULL but it is suggested that
  2341.         a basename be used to identify the program requesting the
  2342.         sample. Eg. "myprogram"
  2343.     name - this is the specific sample ID to be played. If this is
  2344.         not provided then the name used is "Beep".
  2345.  
  2346.   RESULT
  2347.     Returns FALSE if unable to locate the MSD message port.
  2348.  
  2349.   NOTES
  2350.     The soundID name is built up from the basename and the name similar
  2351.     to DOS paths. Examples:
  2352.         "myprogram","TheSound"    --> "myprogram/TheSound"
  2353.         "myprogram/general","Warning"    --> "myprogram/general/Warning"
  2354.  
  2355.   SEE ALSO
  2356.  
  2357. matrix.library/MX_StrCpyLen                       matrix.library/MX_StrCpyLen
  2358.  
  2359.   NAME
  2360.     MX_StrCpyLen -- copy string up to specified max length  (V22)
  2361.  
  2362.   SYNOPSIS
  2363.     MX_StrCpyLen(source,dest,size)
  2364.              a0    a1   d0
  2365.  
  2366.     STRPTR    source;
  2367.     STRPTR    dest;
  2368.     LONG    size;
  2369.  
  2370.   FUNCTION
  2371.     Copy a string into a buffer of specified length.
  2372.  
  2373.   INPUTS
  2374.     source = pointer to a null terminated string.
  2375.     dest = pointer to a buffer to copy string into.
  2376.     size = maximum number of characters to copy.
  2377.  
  2378.   RESULT
  2379.     None.
  2380.  
  2381.   NOTES
  2382.     The destination buffer MUST be of size+1 bytes long, this is
  2383.     because the string is padded with a NULL byte.
  2384.  
  2385.   SEE ALSO
  2386.     MX_StrLen()
  2387.  
  2388. matrix.library/MX_StrCpyWord                     matrix.library/MX_StrCpyWord
  2389.  
  2390.   NAME
  2391.     MX_StrCpyWord -- copy the next word from source string (V23)
  2392.  
  2393.   SYNOPSIS
  2394.     next = MX_StrCpyWord(source,dest)
  2395.      d0                 a0    a1
  2396.  
  2397.     STRPTR    next;
  2398.     STRPTR    source;
  2399.     STRPTR    dest;
  2400.  
  2401.   FUNCTION
  2402.     Copy a the next word from the source buffer into the
  2403.     destination buffer. If there are no more words or the
  2404.     source pointer is NULL then NULL will be returned.
  2405.  
  2406.   INPUTS
  2407.     source = pointer to a null terminated string or NULL.
  2408.     dest = pointer to a buffer to copy string into.
  2409.  
  2410.   RESULT
  2411.     next = pointer to the start of the next word in the source
  2412.         buffer, or NULL if the end of string marker was reached.
  2413.   NOTES
  2414.     The destination buffer MUST be large enough to copy the word into.
  2415.  
  2416. matrix.library/MX_StrLen                             matrix.library/MX_StrLen
  2417.  
  2418.   NAME
  2419.     MX_StrLen -- get the length of a string (V22)
  2420.  
  2421.   SYNOPSIS
  2422.     length MX_StrLen(string)
  2423.       d0               a0
  2424.  
  2425.     LONG    length;
  2426.     STRPTR    string;
  2427.  
  2428.   FUNCTION
  2429.     Compute the length of a null terminated string.
  2430.  
  2431.   INPUTS
  2432.     string = pointer to a null terminated string.
  2433.  
  2434.   RESULT
  2435.     length = the number of characters in the string, excluding the
  2436.         null terminating byte.
  2437.  
  2438.   NOTES
  2439.     Register a0 (string pointer) is returned unchanged, other scratch
  2440.     registers are modified (a1,d1).
  2441.  
  2442.   SEE ALSO
  2443.     MX_StrCpyLen
  2444.  
  2445. matrix.library/MX_TaskName                         matrix.library/MX_TaskName
  2446.  
  2447.   NAME
  2448.     MX_TaskName -- get the "real" name of our task.
  2449.  
  2450.   SYNOPSIS
  2451.     success = MX_TaskName(buffer,task,tags,size)
  2452.        d0                   a0    a1   a2   d0
  2453.  
  2454.     LONG    success;
  2455.     STRPTR    buffer;
  2456.     struct    Task *task;
  2457.     struct    TagItem *tags;
  2458.     LONG    size;
  2459.  
  2460.   FUNCTION
  2461.     Fills a buffer with the name or full pathname of the specified
  2462.     task.
  2463.  
  2464.   INPUTS
  2465.     buffer = pointer to buffer to store the name/pathname.
  2466.     task = pointer to task or NULL. If NULL is used then the
  2467.         current task will be used unless overidden by the tag
  2468.         MXTN_TaskPtr or MXTN_TaskName.
  2469.     tags = pointer to a tag list or NULL.
  2470.     size = length of buffer in bytes. May not be ZERO.
  2471.  
  2472.   RESULT
  2473.     success = TRUE if successful, FALSE otherwise.
  2474.  
  2475.   TAGS
  2476.     MXTN_TaskPtr (struct Task *) - pointer to task, overides task
  2477.         parameter.
  2478.  
  2479.     MXTN_TaskName (UBYTE *) - pointer to name of task. Only really of
  2480.         use if used with MXTN_FullPath. Overides task parameter.
  2481.  
  2482.     MXTN_FullPath (BOOLEAN) - if TRUE then the full path name of the
  2483.         specified task will be given. If FALSE then only the name of
  2484.         the task will be given. Defaults to TRUE.
  2485.  
  2486.   SEE ALSO
  2487.     exec.library/FindTask()
  2488.  
  2489. matrix.library/MX_TextFileToList             matrix.library/MX_TextFileToList
  2490.   NAME
  2491.     MX_TextFileToList -- create a linked list from a text file. (V22)
  2492.  
  2493.   SYNOPSIS
  2494.     result = MX_TextFileToList(head,filename,tags)
  2495.       d0                        a0     a1     a2
  2496.  
  2497.     LONG    result;
  2498.     APTR    head;
  2499.     STRPTR    filename;
  2500.     struct    TagItem *tags;
  2501.  
  2502.   FUNCTION
  2503.     Creates a linked list from a text file.
  2504.  
  2505.   INPUTS
  2506.     head = pointer to a listhead that is initialized. If
  2507.         there are any entries in the list they are freed
  2508.         using MX_FreeListNodes().
  2509.     filename = pointer to a filename to read.
  2510.     tags = pointer to a tag list. Please keep this NULL.
  2511.  
  2512.   RESULT
  2513.     result = count of number of lines added to the listview,
  2514.         or -1 on failure.
  2515.  
  2516.   TAGS
  2517.  
  2518.     MXTFL_AllocateFullLine (BOOLEAN) = should the allocated
  2519.         buffer be allocated to MXTFL_LineLength. This may
  2520.         not be used with a MXTFL_LineLength of -1. Default
  2521.         is FALSE. (V24)
  2522.  
  2523.     MXTFL_AllocateLNNAME (BOOLEAN) = if set to TRUE then
  2524.         the ln_Name field is allocated to the length of
  2525.         the line. When you free the list you *MUST* also
  2526.         free the ln_Name field using FreeVec().
  2527.  
  2528.     MXTFL_AllocateStrings (BOOLEAN) = if set to FALSE then
  2529.         LN_NAME string pointers are not allocated and point
  2530.         to the source buffer. The source buffer will be
  2531.         modified after, having linefeeds converted to NULL
  2532.         bytes. You may not use the following tags in
  2533.         conjunction with this tag:
  2534.             MXTFL_FileHandle, MXTFL_LeadingSpaces,
  2535.             MXTFL_LineLength, MXTFL_SplitLines,
  2536.             MXTFL_AllocateFullLine.
  2537.         You must specify the buffer using MXTFL_SourceBuffer,
  2538.         but please note that this buffer may not be reused
  2539.         in this routine as the end of buffer NULL character
  2540.         will be encountered on the first line.
  2541.         Default = TRUE. (V24)
  2542.  
  2543.     MXTFL_FileHandle (APTR) = filehandle of file to read,
  2544.         this will be used instead of the filename passed in.
  2545.         NOTE: This filehandle will be closed when finished.
  2546.         (V23)
  2547.  
  2548.     MXTFL_LeadingSpaces (ULONG) = number of leading spaces.
  2549.         NOTE: This reduces the MXTFL_LineLength value so
  2550.         make sure it is less tha this. Default = 0. (V23)
  2551.  
  2552.     MXTFL_LineLength (ULONG) = maximum length for a line of
  2553.         text. The default length is 80 characters. Must be
  2554.         greater than 0. (V23)
  2555.         If -1 then the full line will be used.
  2556.  
  2557.     MXTFL_MemAttr (ULONG) = attributes for the memory
  2558.         allocations. Default = 0. (V24)
  2559.  
  2560.     MXTFL_NodeSize (ULONG) = size of list node entry, this
  2561.         defaults to LN_SIZEOF. Must be greater or equal
  2562.         to LN_SIZEOF. (V23)
  2563.         Note: The LN_TYPE and LN_PRI fields are initialized
  2564.               to zero always.
  2565.  
  2566.     MXTFL_SourceBuffer (APTR) = pointer to a text buffer.
  2567.         This will be used instead of the filename passed
  2568.         in. The buffer *MUST* be null terminated. (V23)
  2569.  
  2570.     MXTFL_SplitLines (BOOLEAN) = set to TRUE if you want
  2571.         lines longer than the buffer to be spread over
  2572.         several lines. Deafult = FALSE. Not implemented.
  2573.         (V23)
  2574.  
  2575.   NOTES
  2576.     The list entries allocated by this function may be
  2577.     deallocated by a call to MX_FreeListNodes().
  2578.  
  2579.   SEE ALSO
  2580.     MX_FreeListNodes(), MX_FreeList()
  2581.  
  2582. matrix.library/MX_TimeString                     matrix.library/MX_TimeString
  2583.  
  2584.  NAME
  2585.     MX_TimeString -- OBSOLETE
  2586.  
  2587.  SYNTAX
  2588.     MX_TimeString(buffer,seconds,type)
  2589.                     a0     d0     d1
  2590.  
  2591.  NOTES
  2592.     dos.library and locale.library provide satisfactory
  2593.     system routines for this.
  2594.  
  2595. matrix.library/MX_UnlockMxBase                 matrix.library/MX_UnlockMxBase
  2596.  
  2597.   NAME
  2598.     MX_UnlockMxBase -- Surrender lock on MxBase by MX_LockMxBase(). (V23)
  2599.  
  2600.   SYNOPSIS
  2601.     MX_UnlockMxBase()
  2602.  
  2603.   NOTE
  2604.     This call is guaranteed to preserve all registers.
  2605.  
  2606.   SEE ALSO
  2607.     MX_LockMxBase()
  2608.  
  2609. matrix.library/MX_UnlockWindow                 matrix.library/MX_UnlockWindow
  2610.  
  2611.   NAME
  2612.     MX_UnlockWindow -- enable a window. (V21)
  2613.  
  2614.   SYNOPSIS
  2615.     MX_UnlockWindow(window,lock)
  2616.                a0     a1
  2617.  
  2618.     struct    Window    *window;
  2619.     APTR    lock;
  2620.  
  2621.   FUNCTION
  2622.     Enable the gadgets and restore mouse pointer.
  2623.  
  2624.   INPUTS
  2625.     window - pointer to window to be unlocked.
  2626.     lock - the lock returned by MX_LockWindow() or NULL.
  2627.  
  2628.   RESULT
  2629.     None.
  2630.  
  2631.   SEE ALSO
  2632.     MX_LockWindow()
  2633.  
  2634. matrix.library/MX_UpdateVBLankInterrupt matrix.library/MX_UpdateVBLankInterrupt
  2635.  
  2636.   NAME
  2637.     MX_UpdateVBLankInterrupt -- install remove the vblank interrupt (V23)
  2638.  
  2639.   SYNOPSIS
  2640.     state = MX_UpdateVBLankInterrupt()
  2641.  
  2642.     ULONG    state;
  2643.  
  2644.   FUNCTION
  2645.     If the VBLANK list is empty and the interrupt is installed then
  2646.     the interrupt will be removed. If the list is not empty and the
  2647.     interrupt is not installed then it will be. This function is for
  2648.     private use by matrix.library.
  2649.  
  2650.   RESULT
  2651.     state = (0) if interrupt is not running, or (1) if the interrupt
  2652.         is running.
  2653.  
  2654.   NOTES
  2655.     This function is private for use by matrix.library only.
  2656.  
  2657.   SEE ALSO
  2658.     MX_AddVBlankNode(), MX_RemVBlankNode()
  2659.  
  2660. matrix.library/MX_WhereAmI                         matrix.library/MX_WhereAmI
  2661.  
  2662.   NAME
  2663.     MX_WhereAmI -- OBSOLETE FUNCTION
  2664.  
  2665.   SYNOPSIS
  2666.     formhandle = MX_OpenFormReq(hail,path,file,type,mode,tags)
  2667.         d0                       a0   a1   a2   a3   d0   d1
  2668.  
  2669. matrix.library/MX_WindowHandler               matrix.library/MX_WindowHandler
  2670.  
  2671.   NAME
  2672.     MX_WindowHandler -- do some windowy stuff
  2673.  
  2674.   SYNOPSIS
  2675.     result = MX_WindowHandler(window,[screen],tags,vi)
  2676.       d0                        a0     [a1]    d0  d1
  2677.  
  2678.     ULONG    result;
  2679.     struct    Window    *window;
  2680.     struct    Screen    *screen;
  2681.     struct    TagItem    *tags;
  2682.     struct    VisInfo    *vi;
  2683.  
  2684.   FUNCTION
  2685.     Does lots of windowy stuff
  2686.  
  2687.   INPUTS
  2688.     window = 
  2689.     screen = 
  2690.     tags = 
  2691.     vi = 
  2692.  
  2693.   RESULT
  2694.     Returns FALSE if error occurs otherwise it is the value
  2695.     wh_ReturnVal set in the wh structure.
  2696.  
  2697.   TAGS
  2698.  
  2699.     MXWH_ASLInfo (APTR) = Pointer to matrix asl info structure,
  2700.         this consists of positional information for asl requestors
  2701.         associated with this window.
  2702.  
  2703.     MXWH_Catalog (APTR) = pointere to open catalog as returned by
  2704.         locale.library/OpenCatalogA() (V24) 
  2705.  
  2706.     MXWH_CatalogName (STRPTR) = name of catalog file to load. (V24)
  2707.  
  2708.     MXWH_CatCompArray (APTR) = pointer to array of ID,STRPTRS.
  2709.         When specifying the labels for gadgets, you provide the
  2710.         string id for lookup using locale.library. (V24)
  2711.  
  2712.     MXWH_CloseWindow (ULONG) = wh_ReturnVal when the close gadget
  2713.         is selected. Default = ~0 = no close gadget.
  2714.  
  2715.     MXWH_ESCAddress (APTR) = Pointer to user function that is
  2716.         called when the ESC key is pressed. If Set to ~0 the active
  2717.         byte in the wh structure is cleared MXWH_ESCvalue tag data
  2718.         value is set in wh_ReturnVal. The user function is called as
  2719.         follows:
  2720.             void Function(wh)
  2721.                           a0
  2722.  
  2723.     MXWH_ESCvalue (ULONG) = wh_ReturnVal when the ESC key is
  2724.         pressed. Default = 0. MXWH_ESCAddress must also be set.
  2725.  
  2726.     MXWH_Events (APTR) = Pointer to array of longword pairs,
  2727.         terminated by a NULL longword. This array consists
  2728.         of IDCMP Code and Function pairs.
  2729.             used = Function(wh,intuiMsg)
  2730.              d0             a0    a1
  2731.         The function should return TRUE if it used the message
  2732.         and does not want matrix.library to process it.
  2733.         You may also need to set the tag MXWH_IDCMPFlags.
  2734.         (V23.1032) It is no longer necessary to specify the
  2735.         tag MXWH_IDCMPFlags as matrix calculates what the
  2736.         mask is from the events you are requesting.
  2737.  
  2738.     MXWH_Gadgets (APTR) = Pointer to matrix gadget data to be
  2739.         passed to MX_CreateGadgets().
  2740.  
  2741.     MXWH_Handler (APTR) =
  2742.  
  2743.     MXWH_IDCMPFlags (ULONG) = Mask of IDCMP flags to be
  2744.         recieved. Use this in conjunction with MXWH_Events.
  2745.  
  2746.     MXWH_InitCode (APTR) = Pointer to function called after the
  2747.         window has been opened. You should you this to set up
  2748.         any graphics you wish to render into the window.
  2749.             void Function(wh)
  2750.                           a0
  2751.  
  2752.     MXWH_Locale (APTR) = pointer to open locale as returned by
  2753.         locale.library/OpenLocale() (V24)
  2754.  
  2755.     MXWH_LocaleName (STRPTR) = pointer to locale name or NULL for
  2756.         the default locale. (V24)
  2757.  
  2758.     MXWH_Menus (APTR) = Pointer to menu array to be passed to
  2759.         CreateMenusA() and LayoutMenusA(). If not specified then
  2760.         the window will not have any menus and RMBTRAP will be
  2761.         set in the window flags. This array is localized.
  2762.  
  2763.     MXWH_MenusLocalize (BOOLEAN) = set to FALSE if you do not want
  2764.         the menustrip to be localized. Default = TRUE.
  2765.  
  2766.     MXWH_NoDepth (BOOLEAN) = Set to TRUE and the depth gadget will
  2767.         not be added to the window. Default = FALSE.
  2768.  
  2769.     MXWH_NoDrag (BOOLEAN) = Set to TRUE to disable the dragbar of
  2770.         the window. Default = FALSE.
  2771.  
  2772.     MXWH_Position (APTR) = Pointer to two WORDs that contain the
  2773.         windows desired position. These will be updated when
  2774.         the window is closed. Set either X or Y position to -1
  2775.         and the window will be centered.
  2776.  
  2777.     MXWH_PositionInWindow (BOOLEAN) = if set to true then the
  2778.         when the window is opened, instead of centering it will
  2779.         open with its top left corner just inside the parent
  2780.         windows top left borders. It is necessary to specify
  2781.         a parent window. The MXWH_Position tag will overide
  2782.         this tag unless it is set to -1. (V23)
  2783.         Not this tag has been renamed MXWH_PositionWindow and
  2784.         is no longer a boolean
  2785.  
  2786.     MXWH_PositionWindow (ULONG) = method for positioning the
  2787.         window. See also MXWH_PositionInWindow
  2788.  
  2789.     MXWH_RemakeWindowHook (APTR) = Hook function to call when
  2790.         the window graphics need to be redrawn. (V23)
  2791.             void Function(wh,intuiMsg)
  2792.                           a0    a1
  2793.  
  2794.     MXWH_ScreenTitle (STRPTR) = pointer to the screen title to
  2795.         be displayed when the window is active. (V23)
  2796.  
  2797.     MXWH_Signals (ULONG) = Mask of signals to be processed by
  2798.         the MXWH_SignalHandler tag function.
  2799.  
  2800.     MXWH_SignalHandler (APTR) = Pointer to function to process
  2801.         the signals specified in the MXWH_Signals tags mask.
  2802.             void Function(wh,sigmaskRecievd)
  2803.                           a0        d0
  2804.  
  2805.     MXWH_UseParentPort (BOOLEAN) = Set to TRUE if you wish this
  2806.         window to share the parent window's message port. It is
  2807.         important for this to be TRUE if the parent window has
  2808.         additional graphics rendered into the window, such as
  2809.         the boxes/borders drawn by matrix.library. Also any
  2810.         custom rendering will have to be taken care of with a
  2811.         user callback through MXWH_RemakeWindowHook
  2812.         Default = TRUE. (V23)
  2813.  
  2814.     MXWH_UserData (ULONG) = User data set in the window handler
  2815.         structure which is passed to callback functions. The
  2816.         userdata field is wh_UserData.
  2817.  
  2818.     MXWH_VisualInfo (APTR) = 
  2819.  
  2820.     MXWH_WindowPointer (APTR) = Pointer to a longword which is
  2821.         to cantain a pointer to the window. This is set to its
  2822.         original value when the window is closed.
  2823.  
  2824.     MXWH_WindowSize (ULONG) = This specifies the width AND the
  2825.         height of the window in characters, with the width
  2826.         given as a word in bits 16-31 and the height in bits
  2827.         0-15. (V23) Default = NONE. This MUST be specified.
  2828.  
  2829.     MXWH_WindowTitle (STRPTR) = Pointer to the title to be
  2830.         used for the window.
  2831.  
  2832.     MXWH_WindowTitleMSGID (ULONG) = this is the stringNum that
  2833.         is passed to MX_GetCatalogStr() (V24)
  2834.  
  2835.     (many more)
  2836.  
  2837.   SEE ALSO
  2838.     MX_WindowHandler2(), MX_CreateGadgets(), MX_GetCatalogStr()
  2839.  
  2840. matrix.library/MX_WrapText                         matrix.library/MX_WrapText
  2841.  
  2842.   NAME
  2843.     MX_WrapText -- remove the last word of a line
  2844.  
  2845.   SYNOPSIS
  2846.     MX_WrapText(source,dest)
  2847.                   a0    a1
  2848.  
  2849.     APTR    source;
  2850.     APTR    dest;
  2851.  
  2852.   FUNCTION
  2853.  
  2854.   INPUTS
  2855.     source = 
  2856.     dest =
  2857.  
  2858.   RESULT
  2859.     None
  2860.  
  2861.   NOTE
  2862.  
  2863.   BUGS
  2864.  
  2865.   SEE ALSO
  2866.     MX_JustifyText()
  2867.  
  2868. matrix.library/MX_WriteForm                       matrix.library/MX_WriteForm
  2869.  
  2870.   NAME
  2871.     MX_WriteForm -- OBSOLETE FUNCTION
  2872.  
  2873.   SYNOPSIS
  2874.     MX_WriteForm(formhandle,buffer,size,type)
  2875.                      a0       a1    d0   d1
  2876.  
  2877. matrix.library/MX_WriteFormTagList         matrix.library/MX_WriteFormTagList
  2878.  
  2879.   NAME
  2880.     MX_WriteFormTagList -- OBSOLETE FUNCTION
  2881.  
  2882.   SYNOPSIS
  2883.     MX_WriteFormTagList(formhandle,buffer,size,tags,type)
  2884.                              a0      a1    d0   d1   d2
  2885.  
  2886.